【问题标题】:Multiple assembly conflict with NuGet System references与 NuGet 系统引用的多个程序集冲突
【发布时间】:2018-10-24 14:25:39
【问题描述】:

我有一个引用 this NuGet package. 的项目,该包有几个框架引用(例如,System.Collections)。我的项目面向 .NET Framework 4.6.2,并且我的构建机器上安装了 .NET 4.6.2 目标包。

当我在 Visual Studio 中安装 NuGet 包时,它还会安装所有框架包的依赖项,所以我的 packages.config 最终看起来像这样

<packages>
  <package id="CommandLineParser" version="2.3.0" targetFramework="net462" />
  <package id="System.Collections" version="4.3.0" targetFramework="net462" />
  <package id="System.Console" version="4.0.0" targetFramework="net462" />
  <package id="System.Diagnostics.Debug" version="4.0.11" targetFramework="net462" />
  <package id="System.Globalization" version="4.0.11" targetFramework="net462" />
  <package id="System.IO" version="4.1.0" targetFramework="net462" />
  <package id="System.Linq" version="4.1.0" targetFramework="net462" />
  <package id="System.Linq.Expressions" version="4.1.0" targetFramework="net462" />
  <package id="System.Reflection" version="4.1.0" targetFramework="net462" />
  <package id="System.Reflection.Extensions" version="4.0.1" targetFramework="net462" />
  <package id="System.Reflection.TypeExtensions" version="4.1.0" targetFramework="net462" />
  <package id="System.Resources.ResourceManager" version="4.0.1" targetFramework="net462" />
  <package id="System.Runtime" version="4.1.0" targetFramework="net462" />
  <package id="System.Runtime.Extensions" version="4.1.0" targetFramework="net462" />
</packages>

我了解到这是因为该包以 .NET Standard 为目标,即使机器上存在这些包,它也会自动导入所有这些包。

到目前为止,一切都很好,我可以在我的机器上构建项目。但是,在构建服务器上,我收到以下错误

CSC:错误 CS1703:已导入具有相同标识的多个程序集:'C:\Jenkins\jobs\MyProject\workspace\packages\System.Runtime.Extensions.4.1.0\lib\net462\System.Runtime.Extensions .dll”和“C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.6.2\Facades\System.Runtime.Extensions.dll”。删除重复引用之一。

构建服务器还安装了 .NET 4.6.2 目标包。此外,在我的开发机器上,我也有该文件

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.2\Facades\System.Runtime.Extensions.dll

以及所有其他外观系统文件。

所以我的问题是,为什么这在我的构建服务器上失败了?似乎安装了所有相同版本的 .NET,我不确定还要检查什么。

【问题讨论】:

  • 在构建服务器上执行构建的 MSBuild 版本是什么?使用 Visual Studio 2017 或其构建工具(又名 MSBuild 15)并重试。
  • msbuild 版本是 14.0.23107.0。我无权访问 Visual Studio 2017。

标签: c# .net visual-studio nuget


【解决方案1】:

我在构建服务器上安装了 Visual Studio 2015 Update 3,现在项目构建没有问题。不幸的是,我不完全确定修复错误的更改是什么。

【讨论】:

    猜你喜欢
    • 2019-01-12
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    • 2017-06-05
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多