【发布时间】: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