TFS 2013 构建缺少的 .targets 和缺少的程序集

TFS 2013 Build missing .targets and missing assemblies

我有一个带有构建控制器和代理的 TFS 2013 服务器。在 Visual Studio 2013 年创建了一个新的 asp.net mvc 项目和一个测试项目 (MSTest)。一旦签入,我就尝试进行 TFS 构建,但是

我遇到了如下错误:命名空间 'Microsoft' 中不存在类型或命名空间名称 'VisualStudio'(是否缺少程序集引用?) 与 'TestClassAttribute' 和 'TestClass' 等相同

我也收到大量警告,例如:

C:\Program Files (x86)\MSBuild.0\bin\amd64\Microsoft.Common.CurrentVersion.targets (991): 框架参考程序集 ".NETFramework,Version= v4.5" 未找到。要解决此问题,请为此框架版本安装 SDK 或 Targeting Pack,或者将您的应用程序重新定位到您已为其安装 SDK 或 Targeting Pack 的框架版本。请注意,程序集将从全局程序集缓存 (GAC) 中解析,并将用于代替引用程序集。因此,您的程序集可能无法正确定位到您想要的框架。

最终错误为:

异常消息:MSBuild 错误 1 ​​已结束此生成。您可以在上述消息中找到有关此错误原因的更多具体信息。 (类型 BuildProcessTerminateException) 异常堆栈跟踪:在 System.Activities.Statements.Throw.Execute(CodeActivityContext 上下文) 在 System.Activities.CodeActivity.InternalExecute(ActivityInstance 实例,ActivityExecutor 执行器,BookmarkManager bookmarkManager) at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor 执行器, BookmarkManager bookmarkManager, Location resultLocation)

我四处寻找答案,许多人建议在构建服务器上安装 Visual Studio(一个不可能的选项),许多人说改变构建/p:VisualStudioVersion=12.0 的参数并从 csproj 中删除内容。

我已经设法让构建工作,但是我确实明确地将配置设置为 Release|x86,但我得到了一个空的 drop 文件夹 zip。

关于如何在不安装 Visual Studio 的情况下解决这些问题的任何想法?

您需要在构建服务器上安装 Visual Studio。这不需要许可证,您可以安装您在 MSDN 下获得许可的最高版本的 VS。因此,如果您的组织甚至有一个 VS Ultimate/Enterprise。您可以在任何构建服务器上绑定它。