我按照Scott Hanselman的博客文章使用PreBuild Events来管理配置并且成功地使用它。
现在我想将我的配置拆分成几个不同的文件,所以需要在构建前再次执行该命令。问题是PreBuild事件文本都被执行为一个控制台命令。如何将其拆分为多个命令?
我按照Scott Hanselman的博客文章使用PreBuild Events来管理配置并且成功地使用它。
现在我想将我的配置拆分成几个不同的文件,所以需要在构建前再次执行该命令。问题是PreBuild事件文本都被执行为一个控制台命令。如何将其拆分为多个命令?
结果发现,问题在于Scott的示例代码开头没有包含call
命令。只要您不想使用不同参数多次执行.bat
文件,这是可以接受的。
这个:
call "$(ProjectDir)copyifnewer.bat" "$(ProjectDir)connectionStrings.config.$(ConfigurationName)" "$(ProjectDir)connectionStrings.config"
call "$(ProjectDir)copyifnewer.bat" "$(ProjectDir)appSettings.config.$(ConfigurationName)" "$(ProjectDir)appSettings.config"
对我来说很有效。
我正在使用Windows 7 64位操作系统上的Visual Studio 2010。
我找到了一种更适合我的解决方案,我使用&& ^
将命令链接在一起,例如,像这样编辑我的.vcxproj xml文件:
<PreBuildEvent>
<Command>echo "hello 1" && ^
echo "hello 2" && ^
echo "hello 3"</Command>
<Message>Performaing pre-build actions ...</Message>
</PreBuildEvent>
<PreBuildEvent>
<Command>C:\Python27\python.exe "$(SolutionDir)check_path.py" 32 && ^
copy "$(SolutionDir)h1ksim_lib\vc$(PlatformToolsetVersion).pdb" "$(IntDir)" /-Y > nul</Command>
<Message>Performaing pre-build actions ...</Message>
</PreBuildEvent>
< p > 在复制命令中使用“> nul”可防止任何输出显示在构建窗口中,因此当它说“0 file(s) copied.”时,我的团队不会感到惊慌。
有关在子项目之间共享预编译头的参考资料,请参见:
你应该能够将命令放在单独的一行上,然后每个命令将按顺序执行。或者,一个“作弊”的方法是:
call
命令?请参见此处。 - Pascal