自从我设置构建服务器以来已经有一段时间了,所以也许我忘记了一些东西,或者 .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。
要在没有 Visual Studio 的情况下在 CI 服务器上运行,只需将几个文件夹从开发机器复制到 CI 服务器上的相同位置。无需安装 SDK。
与 2015 年相比:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications
与 2013 年相比:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications
与 2012 年相比:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications
与 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(通常为 .csproj
或 .vbproj
)文件中的 <MSBuildExtensionsPath32>
位置。
完成此操作后,您的项目将编译。
您还应该将 VisualStudioVersion 环境变量显式设置为您正在使用的 Visual Studio 版本(VS2010 为 10.0,VS2012 为 11.0,VS2013 为 12.0,VS2015 为 14.0),以确保它在您的配置中正确设置。
我的问题与在 Windows 2008 Box 上安装 Windows Software Development Kit (SDK) for Windows 8 有关。如果您在该页面上进一步阅读,您将看到标有“Windows Vista 和 Windows Server 2008 上的 .NET Framework 4.5 SDK 工具”的标题。这告诉你:
在受支持的操作系统(例如,Windows 7 或 Windows 8)上运行 Windows SDK for Windows 8 安装程序。在指定位置屏幕上选择以下选项:下载 Windows SDK 以安装在单独的计算机上。按下一步按钮。回答加入客户体验改善计划 (CEIP) 屏幕上的问题。在下一个屏幕上,选择 .NET Framework 4.5 Software Development Kit 功能。取消选择所有其他可以取消选择的功能。选择下载按钮。转到下载位置(在步骤 2 中指定)并找到以下 .NET Framework 4.5 SDK 工具安装程序文件:sdk_tools4.msi、sdk_tools4.cab 您可以将这些文件复制到组织内的 Windows Vista 或 Windows 2008 Server 计算机。这些文件需要复制到 Windows Vista 或 Windows 2008 Server 计算机上的同一目录中。注意:请勿在您的组织之外或作为任何其他安装程序的一部分重新分发这些文件。在 Windows Vista 或 Windows 2008 Server 计算机上,查看此处的许可条款。检查计算机上是否已安装 .NET Framework 4.5。否则,请从 www.microsoft.com 下载并安装 .NET Framework 4.5。以管理员权限打开命令提示符。转到复制 .NET Framework 4.5 SDK Tools 安装程序文件的目录。使用命令行安装 .NET Framework 4.5 SDK 工具:Msiexec /i sdk_tools4.msi VSEXTUI=1
从 msdn:
Windows SDK 不再附带完整的命令行构建环境。您必须分别安装编译器和构建环境。如果您需要一个包含编译器和构建环境的完整开发环境,您可以下载 Visual Studio 2012 Express,其中包含 Windows SDK 的相应组件。
为了解决这个问题,我不得不将文件夹 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5
从我的开发机器(顺便说一下,它有 Visual Studio 2012)复制到构建代理上。此操作后,Team City 没有再报错,mscorlib.dll 也没有输出到 bin 文件夹中。
Microsoft Build Tools 2013 在这种情况下会有所帮助,正如其下载页面所述:
如果您的计算机上没有安装 Visual Studio,您可以使用 Build Tools 2013 来构建托管应用程序。 Visual Basic 和 C# 编译器也包含在此下载中。 (在早期版本中,这些工具包含在独立的 .NET Framework 中。)
我的部门喜欢对安装在我们的 Win 7 构建机器上的内容采取简约的方法。但是,由于潜在的注册表项问题,我们不喜欢仅仅复制和粘贴文件/文件夹。我没有安装 VS 2013,而是安装了以下更小且免费的组件。现在开发团队可以成功构建 VS 2013 Web 应用程序。
.Net Framework v4.5.1,安装工具所需 - http://www.microsoft.com/en-us/download/details.aspx?id=40779
MS Build Tools 2013,我们需要 C# 编译器 - http://blogs.msdn.com/b/visualstudio/archive/2013/07/24/msbuild-is-now-part-of-visual-studio.aspx
MS VS 2013 隔离外壳,我们需要 Web 应用程序目标 - http://www.microsoft.com/en-us/download/details.aspx?id=40764。
Microsoft.WebApplication.targets
,而我从来不知道那个孤立的外壳!
我用 Visual Studio 代理解决了这个问题。
您可以尝试安装 Visual Studio Agents 2012。
http://www.microsoft.com/en-us/download/details.aspx?id=38186