【问题标题】:VS2015/TFS2013 build server problemsVS2015/TFS2013搭建服务器问题
【发布时间】:2017-07-09 23:56:25
【问题描述】:

TFS2013 update 5VS2015 Enterprise update 3dev PC构建服务器 上(根据 What is required for doing Unit Tests on a Build Server?)。

Project 是一个标准的 MVC5 框架,目前几乎没有进行任何修改。该项目可以编译,但有两个主要问题。

第一期:

C:\Program Files (x86)\MSBuild\12.0\bin\amd64\Microsoft.Common.CurrentVersion.targets (1697): Found conflicts between different versions of the same dependent assembly. In Visual Studio, double-click this warning (or select it and press Enter) to fix the conflicts; otherwise, add the following binding redirects to the "runtime" node in the application configuration file: 

接下来是针对<runtime> 节点的一系列建议的 xml 编辑,如下所示:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" culture="neutral" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
    </dependentAssembly>
</assemblyBinding>

其他 3 条建议在此不再赘述,因为它们基本相同。它们分别寻址Microsoft.OwinWebGreaseNewtonsoft.Json。但这令人困惑,因为当我检查 web.config 中的 &lt;runtime&gt; 节点时,警告消息中推荐的精确 xml 元素已经在 web.config 中用于所有 4 个项目。另外,警告说双击或选择它,但我不能这样做。

第二期:

TF900547: The directory containing the assemblies for the Visual Studio Test Runner is not valid 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow'.

我在构建服务器上检查了指定的位置,果然请求的文件夹树不存在,树停在(x86)\Microsoft Visual Studio 12.0\Common7\IDE\。我在(x86)\Microsoft Visual Studio 14.0(x86)\Microsoft Visual Studio 14.0\Common7\IDE\\CommonExtensions\Microsoft\TestWindow 下检查了存在,并且整个位置都存在重要的安装。

我还查看了VS2015 build with TFS2013,它建议了一个特定的 MSBuild 参数。鉴于上述路径问题,这似乎是有道理的,但在我尝试之前,我想确认它对我的一组问题是有意义的,并且特定参数是否正确。另外,那个 MSBuild 参数会解决第一期提到的冲突吗?

最后,在研究这一切的过程中,我开始看到构建服务器配置的规模有多大。这有点吓人。如果我可以开始学习参考资料或书籍,我将不胜感激,以便为这个过程接受更好的教育。

更新:TFS 2013 building .NET 4.6 / C# 6.0 中的简单 MSBuild 参数 /tv:14.0 之后,第一个问题得到了解决。构建现在可以找到正确的程序集。

仍在寻求解决有关 Test Runner 的第二个问题,但我正在阅读的一些帖子表明这种特殊的 VS/TFS 组合是不寻常的。可能是在构建服务器上同时需要 VS2015 和 VS2013,而测试需要 VS2013。会回来报告的。

【问题讨论】:

    标签: visual-studio-2015 msbuild continuous-integration build-server


    【解决方案1】:

    如果您想继续使用 Visual Studio Test Runner,第二个问题的解决方案是安装 Visual Studio 2013 或 Microsoft Visual Studio 2013 代理。

    由于无法为“Run VS Test Runner”活动设置工具版本或工具路径,安装 VS 2013 应该是摆脱此错误的唯一方法。


    这是因为测试代理 2015 不再需要测试控制器,因为代理编排现在由服务器(TFS2015 或 VSTS)管理。

    如果您需要测试代理或测试控制器使用 TFS 2013,使用 Microsoft Visual Studio 2013 Update 5 的代理和 配置测试控制器。

    更多详情请看本教程:Install and configure test agents

    关于构建服务器配置,最好确保构建代理(构建服务器)环境与本地环境相同,这样可以大大减少tfs构建问题。

    【讨论】:

    • 我只是来 SO 发布我怀疑的内容,在这里你确认了。我在构建服务器上安装了 VS2013 和 VS2015,一切都运行得很好。期待有机会尽快升级。尽管我似乎已经解决了这个问题,但我很感激确认我的解决方案是正确的,而不是一次性的。只是为了确认一下,当我们说same environment 时,我们到底指的是什么细节?
    • 谢谢@Alan,当你自己修复它时总是更好;正如你理解它是如何工作的!:) 环境通常是指 IDE,例如 VS 版本、测试代理版本、.NET Framework。 Team Service里面有一个host agent供大家参考,不需要自己的agent有那么多东西,只需要一个build agent上应该安装的列表即可。 visualstudio.com/en-us/docs/build/concepts/agents/hosted
    【解决方案2】:

    如果可能的话,我建议在线查看 Visual Studio 或升级到最新的 TFS 版本 (2017)。

    对 TFS 和构建配置的最新更改远远优于之前提供的更改。 XAML 和工作流的日子已经一去不复返了。新的界面非常漂亮,他们提供的发布管理工具也非常好。

    就构建代理配置而言,我的建议是 - 基本上将其设置为您的开发机器的克隆:即在构建代理上安装您在开发环境中使用的相同工具。

    Microsoft 的 Continuous Integration and Deployment 和其他相关页面包含大量优质材料,希望能回答您的一些问题

    【讨论】:

    • 这里是上述 VS/TFS 2013 文档的链接。较新的东西有更多的润色,但如果你被锁定在 2013 年,这可能与你正在做的事情更相关。msdn.microsoft.com/library/ms181709%28v=vs.120%29.aspx
    • 我实际上正计划升级到最新的 TFS/VS 组合,只是我现在正在这个特定系统上进行一个项目,并希望能够在此之前完成它升级。这些链接很棒。尽管我发布了这个问题,但我继续研究它并确实在某个时候点击了这些链接,但这是你记录了它们。
    猜你喜欢
    • 1970-01-01
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多