在Build Server上不使用Visual Studio构建ASP.NET 4.5

时间:2012-10-17 22:39:50

标签: asp.net msbuild visual-studio-2012 asp.net-4.5 build-server

自设置构建服务器以来已经有一段时间了,所以也许我已经忘记了某些东西,或者.NET 4.5与上次我做的这个版本有所不同,但这是我的问题。

我正在尝试设置构建服务器来监视源代码控制存储库。每当有什么变化时,我都希望服务器提取更改并构建项目。如果没有错误,我想将站点部署到构建服务器上运行的网站。

过去当我这样做时,我认为只安装了.NET就可以做到这一点,但是当我尝试构建这个项目时,我得到一个错误“C:\ Program Files \ MSBuild \ Microsoft \缺少VisualStudio \ v11.0 \ WebApplications \ Microsoft.WebApplication.targets,如果我去看看,我可以看到它丢失了。实际上,没有Visual Studio 11目标文件。

经过深思熟虑后,我走出去,得到了“Windows 8 / .NET 4.5 SDK”,认为.NET 4.5 SDK可能会安装我需要的目标文件,但除非我安装了这不对。

因此,我需要在构建服务器上放置什么才能构建项目。我宁愿不必安装完整的Visual Studio 2012.

6 个答案:

答案 0 :(得分:84)

要在不使用Visual Studio的CI服务器上运行,只需将几个文件夹从开发计算机复制到CI服务器上的相同位置。无需安装SDK。

VS 2015:

  • C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ Web
  • C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ WebApplications

VS 2013:

  • C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ Web
  • C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ WebApplications

VS 2012:

  • C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web
  • C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ WebApplications

VS 2010:

  • C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web
  • C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ WebApplications

.NET 4.6:

  • C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.6

.NET 4.5.2:

  • C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.5.2

.NET 4.5.1:

  • C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.5.1

.NET 4.5:

  • C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.5

.NET 4.0.1:

  • C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0.1

.NET 4.0:

  • C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0

或者,作为Matt suggested,您可以将它们复制到项目的子目录中,并更改MSBuild中的<MSBuildExtensionsPath32>位置(通常是.csproj.vbproj)文件。

完成此操作后,您的项目将进行编译。

您还应该将VisualStudioVersion环境变量显式设置为Visual Studio版本(VS2010为10.0,VS2012为11.0,VS2013为12.0,VS2015为14.0),只是为了确保它在您的配置中设置正确。 / p>

答案 1 :(得分:34)

我的问题与在Windows 2008 Box上安装 Windows Software Development Kit (SDK) for Windows 8 有关。如果您在页面上进一步阅读,您将看到标有“Windows Vista和Windows Server 2008上的.NET Framework 4.5 SDK工具”的标题。这告诉你:

  1. 在支持的操作系统(例如,Windows 7或Windows 8)上运行Windows SDK for Windows 8安装程序。
  2. 在“指定位置”屏幕上选择以下选项:下载Windows SDK以在单独的计算机上安装。
  3. 按“下一步”按钮。
  4. 回答加入客户体验改善计划(CEIP)屏幕上的问题。
  5. 在下一个屏幕上,选择.NET Framework 4.5软件开发工具包功能。取消选择可以取消选择的所有其他功能。
  6. 选择下载按钮。
  7. 转到下载位置(在步骤2中指定)并找到以下.NET Framework 4.5 SDK工具安装程序文件: sdk_tools4.msi, sdk_tools4.cab
  8. 您可以将这些文件复制到组织内的Windows Vista或Windows 2008 Server计算机。需要将这些文件复制到Windows Vista或Windows 2008 Server计算机上的同一目录中。 注意:请勿将这些文件重新分发到组织外部或作为任何其他安装程序的一部分。
  9. 在Windows Vista或Windows 2008 Server计算机上,请查看此处的许可条款。
  10. 检查计算机上是否已安装.NET Framework 4.5。否则,请从www.microsoft.com下载并安装.NET Framework 4.5。
  11. 使用管理员权限打开命令提示符。
  12. 转到复制.NET Framework 4.5 SDK Tools安装程序文件的目录。
  13. 使用命令行安装.NET Framework 4.5 SDK工具: Msiexec / i sdk_tools4.msi VSEXTUI = 1

答案 2 :(得分:25)

来自msdn

  

Windows SDK不再附带完整的命令行构建环境。您必须单独安装编译器和构建环境。如果您需要包含编译器和构建环境的完整开发环境,则可以下载Visual Studio 2012 Express,其中包含Windows SDK的相应组件。

为了解决这个问题,我不得不将我的开发机器(顺便提一下Visual Studio 2012)中的文件夹C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5复制到构建代理上。执行此操作后,Team City不再报告任何错误,并且mscorlib.dll未输出到bin文件夹。

答案 3 :(得分:12)

在这种情况下,

Microsoft Build Tools 2013会有所帮助,因为其下载页面描述了:

  

如果您没有在计算机上安装Visual Studio,则可以   使用Build Tools 2013构建托管应用程序。 Visual Basic   和C#编译器也包含在此下载中。 (在早些时候   这些工具包含在独立的.NET中   框架。)

答案 4 :(得分:7)

我的部门。喜欢采用简约的方法来安装Win 7构建机器上的内容。但是,由于潜在的注册表项问题,我们不喜欢仅复制和粘贴文件/文件夹。我没有安装VS 2013,而是安装了以下更小更小的免费组件。现在,开发团队可以成功构建VS 2013 Web应用程序。

答案 5 :(得分:5)

我使用Visual Studio Agents解决了这个问题。

您可以尝试安装Visual Studio Agents 2012。

http://www.microsoft.com/en-us/download/details.aspx?id=38186