什么是AutoUnify以及为什么它导致TFS 2015中的工作测试失败

问题描述 投票:6回答:4

我们正在运行自己的NuGet服务器来打包我们自己的项目。在这种情况下,我们正在重用一些测试构建器。单元测试在本地运行时通过,但是通过TFS 2015,一些失败并出现以下错误。

我已经完成了在这些项目/包中查找文件以找到2.6.4依赖项而没有成功。

什么是AutoUnify,AutoUnify配置在哪里?是否禁用AutoUnify正确解决此问题?

 Unified Dependency "nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77".
         Using this version instead of original version "2.6.3.13283" in "D:\Agents\Agent1\c81e9061\eServices\.NugetLocalCache\EnterpriseApplications.Framework.Testing.1.0.0.0\lib\net45\EnterpriseApplications.Framework.Testing.dll" because AutoUnify is 'true'.
         Using this version instead of original version "2.6.3.13283" in "D:\Agents\Agent1\c81e9061\eServices\.NugetLocalCache\EnterpriseApplications.Framework.Testing.Mvc.1.0.0.0\lib\net451\EnterpriseApplications.Framework.Testing.Mvc.dll" because AutoUnify is 'true'.
         Could not resolve this reference. Could not locate the assembly "nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.

更新:AutoUnify的一个很好的解释是通过MSDN,但这并没有解释如何禁用

更新:由于构建定义使用的NUnit Test适配器版本,这些特定测试仅通过TFS Build失败。让这个问题保持开放,因为听到AutoUnify配置的位置很有意思。

unit-testing tfs nuget tfsbuild
4个回答
0
投票

看来禁用自动绑定重定向的唯一方法是手动编辑单元测试项目的项目文件(.csproj.vbproj)。 link in Rob's answer将引导您完成如何操作,但实质上它只是改变了这一行:

<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>

对此:

<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>

0
投票

不确定有没有办法直接“禁用”autounify ...但是在VS2017中,你可以在依赖冲突时使构建失败。当构建失败时,它会告诉你确切的dll是否存在冲突以及它们所处的项目。

使用此自定义属性修改.csproj

<MSBuildWarningsAsErrors>MSB3277</MSBuildWarningsAsErrors>

或者在解决方案级别创建Directory.Build.props文件以影响该解决方案中的所有项目。 Directory.Build.props应该有类似于这个xml的东西:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
   <MSBuildWarningsAsErrors>MSB3277</MSBuildWarningsAsErrors>
  </PropertyGroup>
</Project>

0
投票

我有一个在运行时失败的单元测试,也看到了有关冲突的警告。它说检查VERBOSE上的构建日志,我看到了类似的消息给你。

我发现我的单元测试app.config有那些指向违规组件的汇编信息。

我通过安装最新的RestSharp和JSON.net软件包创建了这个问题,然后我将它们降级到更低的版本。 app.config中的程序集信息指向这些版本。这可以通过擦除app.config之外的内容来解决。


0
投票

启用/禁用自动绑定重定向似乎启用/禁用报告为AutoUnify的内容

有关启用/禁用自动绑定重定向 click here 的信息

© www.soinside.com 2019 - 2024. All rights reserved.