Kir*_*ein 23 msbuild prebuild visual-studio-2008
我跟随Scott Hanselman的博客文章来管理PreBuild Events的配置并让它运行良好.
我现在想将我的配置拆分成几个不同的文件,因此需要在构建之前再次执行该命令.问题是PreBuild事件文本全部作为一个控制台命令执行.如何将其拆分为多个命令?
Kir*_*ein 41
原来问题是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"
Run Code Online (Sandbox Code Playgroud)
对我来说很好.
我在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>
Run Code Online (Sandbox Code Playgroud)
我把三个命令连在一起.如果上一个命令出错,'&&'告诉shell停止执行.
请注意,在.xml文件中,无法&&直接使用,因此'&&' 必须改为使用.还要注意^字符的使用,这是cmd shell的行继续符(如BASH的\char).
每个新命令必须从行的开头开始.使用这种方法,可以根据需要链接尽可能多的命令,但如果有任何失败,链中的其余部分将不会被执行.
这是我的实际用例,我正在使用Python脚本执行一些环境检查,然后将预编译的头文件的调试文件复制到另一个子项目的目录:
<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>
Run Code Online (Sandbox Code Playgroud)
> nul 复制命令的用法可防止在构建窗口中显示任何输出,因此我的队友在说出来时不会被吓到0 file(s) copied.
在子项目之间共享预编译头文件的参考如下:
| 归档时间: |
|
| 查看次数: |
18825 次 |
| 最近记录: |