Visual Studio 2012 解决方案 TeamCity 中的 MSBuild [英] MSBuild in TeamCity of Visual Studio 2012 solution

查看:29
本文介绍了Visual Studio 2012 解决方案 TeamCity 中的 MSBuild的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个 VS 2012 Web 项目/sln,我正尝试在 TeamCity 中构建它.它使用安装在 TeamCity 上的 .NET 4.5.

I have a VS 2012 web project /sln that I am trying to build in TeamCity. it uses .NET 4.5 which is installed on TeamCity.

TeamCity 服务器仅安装了 VS 2010.

The TeamCity server has VS 2010 installed only.

构建运行时出现此错误:

I get this error when the build runs:

C:BuildAgentworkd5bc4e1b8005d077CUSAAdmin.WebCUSAAdmin.Web.csproj(799, 3): 
error MSB4019: 
The imported project 
    "C:Program Files (x86)MSBuildMicrosoftVisualStudiov11.0WebApplicationsMicrosoft.WebApplication.targets" was not found. 
 Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. Project CUSAAdmin.WebCUSAAdmin.Web.csproj failed. 
 Project CUSAAdmin.sln failed. 

它正在尝试使用 Visual Studio 2012 (v11.0) 来构建.

It is trying to use Visual Studio 2012 (v11.0) to build.

我已经在 build.xml 中将 VisualStudioVersion 设置为 10 ??

I have set the VisualStudioVersion to be 10 in the build.xml though??

 <Target Name="BuildPackage">
   <MSBuild Projects="CUSAAdmin.sln" ContinueOnError="false" 
     Targets="Rebuild" 
      Properties="Configuration=$(Configuration); VisualStudioVersion=10.0"  />

同样在项目内部,它默认为 VS2010

As well inside the project it is defaulting to VS2010

  <PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath 
    Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)MicrosoftVisualStudiov$(VisualStudioVersion)</VSToolsPath>

推荐答案

实际上,您不需要在 CI 服务器上安装 Visual Studio.您只需要将开发机器上的几个文件夹复制到 CI 服务器上的相同位置即可.

Actually, you don't need to install Visual Studio on your CI server. You only need to copy a few folders from a development machine to the same location on the CI server.

VS 2015:

  • C:Program Files (x86)MSBuildMicrosoftVisualStudiov14.0Web
  • C:Program Files (x86)MSBuildMicrosoftVisualStudiov14.0WebApplications

VS 2013:

  • C:Program Files (x86)MSBuildMicrosoftVisualStudiov12.0Web
  • C:Program Files (x86)MSBuildMicrosoftVisualStudiov12.0WebApplications

VS 2012:

  • C:Program Files (x86)MSBuildMicrosoftVisualStudiov11.0Web
  • C:Program Files (x86)MSBuildMicrosoftVisualStudiov11.0WebApplications

VS 2010:

  • C:Program Files (x86)MSBuildMicrosoftVisualStudiov10.0Web
  • C:Program Files (x86)MSBuildMicrosoftVisualStudiov10.0WebApplications

.NET 4.6:

  • C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.6

.NET 4.5.2:

  • C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.5.2

.NET 4.5.1:

  • C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.5.1

.NET 4.5:

  • C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.5

.NET 4.0.1:

  • C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.0.1

.NET 4.0:

  • C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.0

或者,正如马特建议的,您可以将它们复制到项目的子目录中并更改 MSBuild 中的 <MSBuildExtensionsPath32> 位置(通常为 .csproj.vbproj)文件.

Or, as Matt suggested, you could copy them into a subdirectory of your project and alter the <MSBuildExtensionsPath32> location in your MSBuild (typically .csproj or .vbproj) file.

完成此操作后,您的项目将被编译.您仍应将 VisualStudioVersion 显式设置为您正在使用的版本,以确保其设置正确.

Once you have done this, your project will compile. You should still set the VisualStudioVersion explicitly to the one you are using just to be sure it is set right.

注意:此解决方案适用于所有项目类型(包括 Web 项目).对于网站(没有项目文件),我最终安装了 Windows SDK 与我正在使用的 .NET SDK 版本匹配,因为缺少导致它无法构建的注册表项.

NOTE: This solution works for all project types (including web projects). For a web site (that has no project file), I ended up installing the Windows SDK matching the .NET SDK version I am using, because there were missing registry keys that were causing it not to build.

这篇关于Visual Studio 2012 解决方案 TeamCity 中的 MSBuild的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆