2012-08-08 109 views
0

我有一个使用TeamCity构建多个项目的msbuild脚本。它构建了一些C++ builder 2010项目和一些C#项目。它还为它们创建一个安装程序并将其打包。现在我有一个我想要添加的新项目,但问题在于它使用.Net Framework 4构建,而其他较旧的项目以及构建脚本本身的目标是.Net Framework 2.使用TeamCity从msbuild 2脚本构建项目目标为msbuild 4

在TeamCity中的设置选择使用msbuild 2进行构建并将其更改为4(希望它向后兼容)只会导致大量错误。

我想知道是否有一个很好的方法来使用msbuild 4来构建特定的项目,而不是在TeamCity中创建新的构建。

我试着从msbuild 2使用exec命令调用msbuild 4,它工作正常。但也许有一些“更好”的做法。什么“工作”

<Exec Command="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild /t:FooBar /p:Configuration=Debug ..\FooBar\FooBar.sln"/> 

更新

例如:我设法让所有旧的东西使用的MSBuild和.NET Framework 4编译因此,这不是一个真正的问题了。

+0

只是一个问题,为什么不分开构建在单独的配置? – 2012-08-08 13:13:37

+0

因为如果用户想要这样做,而不必记得先运行特定步骤,我希望构建可以轻松地从cmd从点A运行到点B. – inquam 2012-08-08 13:22:02

+0

您可以将单独的cmd文件放在一个大的文件夹中,以便为每个项目调用小文件 – 2012-08-08 14:34:56

回答

0

我解决了它的“正确”方式。确保所有旧的东西都可以使用新的msbuild构建,并定位它们的目标.NET Framework。使用exec的方法也行得通,但总是感觉像是一种黑客。