在VS2017中工作我有一个使用多个Nuget包的C#项目.Net 4.6。在VS内的开发机器上,它可以很好地构建,我已经测试过它可以完全干净地还原Nuget软件包并正确构建。
在我们的构建机器上,它是使用MSBuild.exe构建的,现在一切都出错了。
Build>“ C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ MSBuild.exe“” .sln“ / p:配置=“发布” / p:平台=“任何CPU” /p:version=4.2.0.3230 / m“ .NET的Microsoft(R)Build Engine版本15.7.179.6572 框架版权所有(C)Microsoft Corporation。保留所有权利。
我可以看到/ packages子目录正按预期填充软件包,但随后出现如下错误:
'Reference:System.Numerics.Vectors之间遇到冲突, 版本= 4.1.4.0,文化=中性,PublicKeyToken = b03f5f7f11d50a3a, processorArchitecture = MSIL'和 '平台:System.Numerics.Vectors.dll'。无法确定获胜者 因为'Reference:System.Numerics.Vectors,版本= 4.1.4.0, 文化=中性,PublicKeyToken = b03f5f7f11d50a3a, processorArchitecture = MSIL'不存在。 在“ Platform:System.Numerics.Vectors.dll”和 '参考:System.Numerics.Vectors,版本= 4.1.4.0,文化=中性, PublicKeyToken = b03f5f7f11d50a3a,processorArchitecture = MSIL'。可以 不能确定获胜者,因为“ Reference:System.Numerics.Vectors, 版本= 4.1.4.0,文化=中性,PublicKeyToken = b03f5f7f11d50a3a, processorArchitecture = MSIL'不存在。
My project file looks like:
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ Microsoft.Common.CurrentVersion.targets(2106,5): 警告MSB3245:无法解析此引用。找不到 程序集“ log4net,版本= 2.0.8.0,文化=中性, PublicKeyToken = 669e0ddf0bb1aa2a,processorArchitecture = MSIL”。选中 确保程序集在磁盘上。如果需要此参考 根据您的代码,您可能会遇到编译错误。 [] 对于SearchPath“ {HintPathFromItem}”。 被视为“ packages \ log4net.2.0.8 \ lib \ net45-full \ log4net.dll”,但没有 存在。
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>packages\log4net.2.0.8\lib\net45-full\log4net.dll</HintPath>
</Reference>
每个版本都是一个完全干净的版本(之间已被擦除),因此我可以清楚地看到Nuget 已经下载了log4net.dll
我得到了很多这些信息,但看不到任何原因或从哪里开始寻找解决方案的解释。一切看起来都应该存在
答案 0 :(得分:1)
您可以尝试将配置文件中的绑定重定向更改为log4net的2.8.0
<dependentAssembly>
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.8.0" newVersion="2.0.8.0" />