环境:在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.0Web应用程序。
构建失败是因为它无法解析web目标:
错误:未找到导入的项目"C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets“”。确认声明中的路径正确,并且文件存在于磁盘上。
随后会出现其他警告:未找到框架".NETFramework,Version=v4.0“的引用程序集。要解决此问题,请为此框架版本安装SDK或目标包,或者将您的应用程序重定目标到已安装SDK或目标包的框架版本。请注意,程序集将从全局程序集缓存(GAC)中解析,并将用于替代引用程序集。因此,您的程序集可能无法正确定位到您想要的框架。
我在这里搜索了.NET 4.0目标包:
http://msdn.microsoft.com/en-US/hh487283.aspx
但Windows Server 2012未被列为支持的平台。
IT基础架构团队并不热衷于在每个构建代理虚拟机上安装VS,仅仅是为了获得目标包。
有没有人知道我该怎么解决这个问题?
发布于 2013-04-17 15:59:58
免责声明
我意识到我下面提到的解决方案被许多开发人员所反对,但根据我的经验,它是迄今为止解决问题的最简单和最可靠的方法。
解决方案
到目前为止,解决这个问题的最简单的解决方案是在构建服务器上安装Visual Studio 2012。我知道您说过基础架构团队并不热衷于这样做,但我认为这是一个最佳实践。我将试着在下面概述一下原因。
在构建服务器上安装Visual Studio似乎是一件奇怪的事情,但在接触过TFS块之后,我发现它是管理构建服务器的最简单的方法。
您可以手动将文件(目标)从开发计算机复制到生成服务器,但如果发布了对visual studio的更新,则需要找出发生了哪些更改,并确保也更新了所有这些文件。这些文件通常包括目标文件和相关的dlls。
此外,有了现在可用的所有扩展和包,在构建服务器上加载Visual Studio并安装所需的包比尝试计算出复制功能所需的内容要容易得多。
这一点在微软最近发布ASP.Net and Web Tools 2012.2的时候就已经很清楚了。这改变了Web站点和Web项目的发布流程,我需要在我的TFS构建中使用它。登录到我的构建服务器,加载Visual Studio并下载新的更新,这要容易得多。
我绝对支持在您的构建服务器上安装Visual Studio。
发布于 2013-04-17 15:48:14
你的web应用是用asp.net mvc编写的吗?在这种情况下,您可能需要在构建机器上安装asp.net mvc。我在一台完全干净的机器上运行构建代理时也遇到了同样的问题。在安装了该包之后,构建代理设法构建了一个应用程序。
希望这能有所帮助。
发布于 2013-10-29 00:22:15
为了正确运行TFS 2012,不得不在构建服务器上安装visual studio 2012,这是令人遗憾的。这意味着这些功能("C:\Program FilesTFS....)在(x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets 2012的打包中丢失了。感谢微软修改这个包;-)。
https://stackoverflow.com/questions/16050440
复制相似问题