之前写DirectX时,每次都是将shader编译后生成的文件放在$
(ProjectDir)
然后再将生成的文件拷贝一份到$
(OutDir)
中,以便单独运行可执行文件时,可以正确加载shader
但是这样太麻烦了~于是乎,想到了VS的生成后事件的功能。于是乎开始尝试下
将Shader的生成文件名改为:$
(ProjectDir)
\CSO\%(filename).cso
生成后事件的命令行中添加:xcopy $
(ProjectDir)
\CSO $
(OutDir)
\CSO /i/e/y
于是乎,ok了~~
每次shader编译后的文件会生成在$
(ProjectDir)
下的CSO文件夹中
那句命令行代表着:将$
(ProjectDir)
下的CSO文件夹中的文件拷贝到$
(OutDir)
中的CSO文件夹中,若文件夹不存在,则新建
/i:
如果 Source 是一个目录或包含通配符,而 Destination 不存在,xcopy 会假定 destination 指定目录名并创建一个新目录。然后,xcopy 会将所有指定文件复制到新目录中。默认情况下,xcopy 将提示您指定 destination 是文件还是目录。
/e:
复制所有子目录,包括空目录。同时使用 /e、/s 和 /t 命令行选项。
/y:
禁止提示您确认要覆盖现存的目标文件。
由于我们选择的是生成后事件,于是乎,该命令行会在程序生成成功后执行~~