我正在尝试设置一个MSBuild文件,它将调用另一个MSBuild文件,我想知道实现这个目标的最佳方法是什么。
我们在构建服务器下载MSBuild文件的场景中使用它,然后根据参数执行适当的第二个文件。
我知道我可以只使用<Exec Command="msbuild.exe ..." />任务,但这似乎有点麻烦。
是否有更简单的方法来使用MSBuild来执行另一个MSBuild文件?
发布于 2009-10-01 04:52:11
您可以使用MSBuild task在另一个MSBuild项目中构建目标。
您还可以将目标放在由两个.targets项目导入的外部MSBuild文件中,并使用CallTarget task构建它。
Update:若要执行外部命令,请使用Exec task。
发布于 2010-05-15 23:12:04
使用<MSBuild>任务并不比使用<Exec Command="msbuild.exe .."/>更漂亮。这意味着单个MSBuild进程知道正在构建的所有项目,并且没有冲突;一个特定的项目不能同时由两个线程构建。如果您正在使用"/m“进行构建,这通常是至关重要的。还有其他一些优点,比如在整个构建中有一组记录器。
发布于 2010-04-16 07:28:18
回应Adam的评论:这里有一个执行外部文件的示例--在本例中,它启动nunit。%22用于转义,意思是“以便在可执行路径中有空格。
<Exec Command="%22$(NUnit_Install_Directory)bin\net-2.0\nunit-console.exe%22
/noshadow @(TestableAssemblies, ' ') /xml
$(BuildFilesPath)\NCover-NUnit-Results.xml" /> 您不需要像我一样使用变量,但我发现它使脚本更易于移植。$(NUnit_Install_Directory)定义为
<PropertyGroup>
<NUnit_Install_Directory>c:\Program Files\NUnit 2.5.3\</NUnit_Install_Directory> https://stackoverflow.com/questions/1501930
复制相似问题