我们公司刚刚将我们的项目从TFS 2012服务器迁移到2013 TFS服务器以及我们的构建控制器(2012服务器到2013)。我知道在VS2013中,MSBuild现在是应用程序的一部分,但我还需要引用构建我们的SSIS和SSAS项目的旧构建机器作为部署的一部分。我面临的挑战是这些项目使用Business Intelligence for 2008R2,我无法向前迁移解决方案/项目。 在我在VS2010中创作的分析解决方案中,我有以下构建命令:
<Target Name="BeforeBuild">
<!-- Build SSIS Package-->
<Exec Command=""C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" "$(MSBuildProjectDirectory)\..\AnalyticsSSAS\AnalyticsSSAS.dwproj" /Build" />
</Target>
<PropertyGroup>
<PostBuildEvent>xcopy "$(ProjectDir)..\AnalyticsSSAS\bin\*.*" /y</PostBuildEvent>
</PropertyGroup>
当我尝试使用2013定义运行构建时,构建失败并指出msbiuld taks EXEC未被识别。我可以单独打开解决方案和项目并构建它们(运行2010),没有任何问题2013年想要迁移我无法做到的解决方案。
以下是构建日志文件中生成的实际消息:
"f:\blds\26\DevCI\src\Analytics.sln" (default target) (1) ->
"f:\blds\26\DevCI\src\Database\Dashboards\SSASBuild\SSASBuild.csproj" (default target) (2) ->
(BeforeBuild target) ->
f:\blds\26\DevCI\src\Database\Dashboards\SSASBuild\SSASBuild.csproj(85,5): error MSB3073: The command ""C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" "f:\blds\26\DevCI\src\Database\Dashboards\SSASBuild\..\AnalyticsSSAS\AnalyticsSSAS.dwproj" /Build" exited with code 1.
"f:\blds\26\DevCI\src\Analytics.sln" (default target) (1) ->
"f:\blds\26\DevCI\src\Database\Dashboards\SSISBuild\SSISBuild.csproj" (default target) (3) ->
f:\blds\26\DevCI\src\Database\Dashboards\SSISBuild\SSISBuild.csproj(84,5): error MSB3073: The command ""C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" "f:\blds\26\DevCI\src\Database\Dashboards\SSISBuild\..\AnalyticsSSIS\AnalyticsSSIS.dtproj" /Build" exited with code 1.
我怀疑从我所读到的VS2013中的MSBuild不允许引用较低版本的MSBuild v9.0而不将项目迁移到较新版本。
以前有没有人见过这种类型的构建有什么解决方法吗?
-cheers
答案 0 :(得分:0)
我认为有很多解决方案,但基本的想法是强制使用旧的MSBuild版本。
自定义构建模板(旧样式)
添加MSBuild活动并将ToolPath属性设置为旧版本。您必须公开要构建为模板参数的解决方案列表。
脚本(新款式)
编写一个构建后(或预构建)脚本,该脚本使用解决方案的路径调用正确的MSBuild版本。