You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Visual Studio中设置编译时自动执行指定命令?

嘿,这个需求我之前做HLSL开发时经常碰到,刚好可以给你说清楚两种配置方法,按需选就行!

在Visual Studio中配置编译时自动执行自定义命令的方法

方法一:针对单个.fx文件配置(推荐,精准触发)

这种方法会让Visual Studio只在你的Basic.fx文件有修改时才执行编译命令,避免不必要的重复执行:

  • 在解决方案资源管理器里找到Basic.fx文件,右键它选择「属性」。
  • 在属性窗口的「常规」选项卡中,把「项类型」从「无」改成「自定义生成工具」,点击「应用」。
  • 此时属性窗口会多出「自定义生成工具」选项卡,切换进去:
    • 在「命令行」输入框中,直接粘贴你的命令:
      fxc.exe /T fx_5_0 /Fo Basic.fxo Basic.fx
      
    • 在「输出」输入框中填写Basic.fxo,这样VS会自动检查输出文件的时间戳,只有当源文件更新时才重新编译。
    • 可选:在「附加依赖项」里填写Basic.fx,让VS更准确地识别依赖关系。
  • 点击「确定」保存设置,下次编译项目时,只要Basic.fx有变动,就会自动生成对应的Basic.fxo文件。

方法二:项目级生成事件(全局触发)

如果你希望每次编译项目时都执行这条命令(不管fx文件有没有变化),可以用项目的生成事件:

  • 右键你的项目,选择「属性」(或者直接按Alt+Enter快捷键)。
  • 在左侧导航栏找到「生成事件」,根据需求选择「预生成事件」(编译主程序前执行)或「生成后事件」(编译完成后执行)。
  • 在「命令行」输入框中粘贴你的命令:
    fxc.exe /T fx_5_0 /Fo Basic.fxo Basic.fx
    
  • 可以在「描述」里加个备注,比如「编译HLSL文件生成fxo」,方便后续自己查看。
  • 点击「确定」保存即可。

注意事项

要确保fxc.exe能被VS找到:

  • 最简单的方式是把fxc.exe所在的路径添加到系统环境变量PATH中(一般在Windows SDK的bin目录下,比如C:\Program Files (x86)\Windows Kits\10\bin\<SDK版本>\x64)。
  • 或者直接在命令里写绝对路径,比如:
    "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\fxc.exe" /T fx_5_0 /Fo Basic.fxo Basic.fx
    

内容的提问来源于stack exchange,提问作者J. Doe

火山引擎 最新活动