Visual studio 2008 Visual Studio中的多个预生成事件?

Visual studio 2008 Visual Studio中的多个预生成事件?,visual-studio-2008,msbuild,prebuild,Visual Studio 2008,Msbuild,Prebuild,我已经关注了斯科特·汉斯曼的一篇博客文章,并使其运行良好 现在我想将配置拆分成几个不同的文件,因此需要在构建之前再次执行该命令。问题是预构建事件文本all作为一个控制台命令执行。如何将其拆分为多个命令?您应该能够将这些命令放在单独的一行上,然后每个命令将按顺序执行。或者,做同样事情的“骗子”方法如下: 创建运行新功能所需部分的第二个批处理文件,然后创建运行两个组件批处理文件的父批处理,并在预生成事件中运行该新批处理。例如:batch1.bat修改文件1,batch2.bat修改文件2,然后ba

我已经关注了斯科特·汉斯曼的一篇博客文章,并使其运行良好


现在我想将配置拆分成几个不同的文件,因此需要在构建之前再次执行该命令。问题是预构建事件文本all作为一个控制台命令执行。如何将其拆分为多个命令?

您应该能够将这些命令放在单独的一行上,然后每个命令将按顺序执行。或者,做同样事情的“骗子”方法如下:

  • 创建运行新功能所需部分的第二个批处理文件,然后创建运行两个组件批处理文件的父批处理,并在预生成事件中运行该新批处理。例如:batch1.bat修改文件1,batch2.bat修改文件2,然后batch3.bat同时运行batch1.bat和batch2.bat

问题在于Scott的示例没有在行的开头包含
call
命令。只要您不想使用不同的参数多次执行
.bat
文件,就可以了

这:


对我来说效果很好。

我正在Windows 7 64位上使用Visual Studio 2010

我找到了一个更适合我的解决方案,我将命令与
和&^
链接在一起,例如,编辑我的.vcxprojxml文件,如下所示:

    <PreBuildEvent>
      <Command>echo "hello 1" &amp;&amp; ^
echo "hello 2" &amp;&amp; ^
echo "hello 3"</Command>
      <Message>Performaing pre-build actions ...</Message>
    </PreBuildEvent>
copy命令上的
>nul
用法防止任何输出显示在构建窗口中,因此当它说复制了
0个文件时,我的队友不会感到惊慌失措。

在子项目之间共享预编译标题的参考信息如下:


它们在不同的行上,但它们似乎是作为一个整体执行的。我曾考虑过使用bat文件的方法,但它似乎是一种变通方法,而不是一种解决方案。奇怪。我会提供其他建议(比如添加分号作为分隔符),但我只会抓住救命稻草。很抱歉在VS2008中,将多个CMD文件放在单独的行上不起作用。VS只调用了构建时的第一个脚本。我在每一行前面都添加了CALL,然后一切都正常了。为什么你会问这些
CALL
命令?看见
    <PreBuildEvent>
      <Command>echo "hello 1" &amp;&amp; ^
echo "hello 2" &amp;&amp; ^
echo "hello 3"</Command>
      <Message>Performaing pre-build actions ...</Message>
    </PreBuildEvent>
    <PreBuildEvent>
        <Command>C:\Python27\python.exe "$(SolutionDir)check_path.py" 32 &amp;&amp; ^
copy "$(SolutionDir)h1ksim_lib\vc$(PlatformToolsetVersion).pdb" "$(IntDir)" /-Y > nul</Command>
        <Message>Performaing pre-build actions ...</Message>
    </PreBuildEvent>