TFS 2012 Microsoft.WebApplication.targets

时间:2013-04-17 02:31:48

标签: tfs2012

环境:在Windows Server 2012 VM上运行的TFS 2012构建代理。 .Net 4.0 / .Net 4.5已安装。 Windows SDK(http://msdn.microsoft.com/en-us/library/ms717422.aspx)也已安装。

问题:构建代理无法构建使用VS 2012开发的.net 4.0 Web应用程序。

构建失败,因为它无法解析Web目标:

错误 找不到导入的项目“C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ WebApplications \ Microsoft.WebApplication.targets”。确认声明中的路径是否正确,以及该文件是否存在于磁盘上。

然后是其他警告: 找不到框架“.NETFramework,Version = v4.0”的引用程序集。要解决此问题,请为此框架版本安装SDK或Targeting Pack,或者将应用程序重新定位到已安装SDK或Targeting Pack的框架版本。请注意,程序集将从全局程序集缓存(GAC)中解析,并将用于代替引用程序集。因此,您的程序集可能无法正确定位到您想要的框架。

我在这里搜索了.NET 4.0目标包:

http://msdn.microsoft.com/en-US/hh487283.aspx

但Windows Server 2012未列为受支持的平台。

IT基础架构团队并不热衷于在每个构建代理VM上安装VS,只是为了获得目标包。

有没有人对如何解决这个问题有任何想法?

3 个答案:

答案 0 :(得分:5)

<强>声明

我意识到我在下面提到的解决方案被很多开发人员所厌恶,但根据我的经验,它是迄今为止解决问题最简单,最可靠的方法。

<强>解决方案

到目前为止,解决此问题的最简单方法是在构建服务器上安装Visual Studio 2012。我知道你说基础设施团队并不热衷于这样做,但IMO是最佳实践。我将尝试概述下面的原因。

在构建服务器上安装Visual Studio似乎是一件奇怪的事情,但是我已经发现它是管理构建服务器的最简单方法。

您可以手动将文件(目标)从开发计算机复制到构建服务器,但如果对visual studio进行更新,则需要确定已更改的内容并确保更新所有这些文件。这些文件通常包括目标文件和相关的dll。

此外,对于现在可用的所有扩展和软件包,只需在构建服务器上加载Visual Studio并安装所需的软件包,而不是尝试找出复制功能所需的内容。

最近微软发布TFS时,我对此非常清楚。这改变了网站和Web项目的发布管道,我需要在我的TFS构建中使用它。只需能够登录我的构建服务器,加载Visual Studio并下载新的更新就容易得多。

我肯定支持在构建服务器上安装Visual Studio。

答案 1 :(得分:0)

您的网络应用是用asp.net mvc编写的吗?在这种情况下,您可能需要在构建计算机上安装asp.net mvc。 在完全干净的机器上运行构建代理时遇到同样的问题。安装该软件包后,构建代理程序设法构建了一个应用程序。

希望有所帮助。

答案 2 :(得分:0)

这是可悲不得不以正确运行TFS 2012生成服务器上安装Visual Studio 2012。 这意味着在TFS 2012的包装中错过了这些功能(“C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ WebApplications \ Microsoft.WebApplication.targets ....)”。 感谢Microsoft修改包; - )。