Pie*_*son 21 tfsbuild tfs2010 visual-studio-2013
我正在建立一个新的构建服务器,以支持我们的开发团队从VS2010迁移到VS2013.我们尚未迁移我们的TFS服务器,因此新的构建服务器已设置为带有2个代理的VS2010构建控制器.我还在机器上安装了VS2013(大锤方法).
我们所有的代码都已迁移到目标.Net 4.5.1并在开发人员的工作站上编译.
我们的大多数解决方案都很好,除了包含Web项目的解决方案 这些项目抱怨:
找不到导入的项目"C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets".
导入的项目通过以下两行在构建过程中使用VisualStudioVersion变量:
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
...
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
Run Code Online (Sandbox Code Playgroud)
根据这个页面:
http://msdn.microsoft.com/en-us/library/vstudio/bb383796.aspx
对于4.5和4.5.1目标,将设置为"11.0".但构建机器只有上述路径的12.0版本:
"C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets"
这些相同的.csproj线似乎在一个全新的VS2013项目中使用,所以我不确定它如何能够在构建机器上正确解析.
gia*_*min 26
这是由于Vs2012在csproj文件中添加了这一部分:
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
您可以安全地删除该部分,您的解决方案将构建.
您必须确保.proj文件以<Project ToolsVersion="12"其他方式开始,否则下次使用visual studio 2010打开项目时,它将再次添加已删除的节点.
否则,如果您需要使用webdeploy或使用构建服务器,则上述解决方案将无效,但您可以VisualStudioVersion在构建脚本中指定该属性:
msbuild myproject.csproj /p:VisualStudioVersion=12.0
Run Code Online (Sandbox Code Playgroud)
或编辑您的构建定义:

小智 15
您可以做的是在构建服务器上运行msbuild时指定VisualStudioVersion属性
msbuild myproject.csproj /p:VisualStudioVersion=12.0
Run Code Online (Sandbox Code Playgroud)
您应该能够通过编辑构建模板来修复工具版本。
打开模板 .xaml 文件并找到“Run MsBuild for Project”活动。在属性中可以选择设置工具版本。如果需要,您可以创建模板级别属性以使其更易于配置。

| 归档时间: |
|
| 查看次数: |
19863 次 |
| 最近记录: |