【发布时间】:2020-10-28 00:22:25
【问题描述】:
在 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:Configuration="发布" /p:Platform="任何 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, 处理器架构=MSIL' 和 “平台:System.Numerics.Vectors.dll”。无法确定获胜者 因为'参考:System.Numerics.Vectors,版本=4.1.4.0, 文化=中立,PublicKeyToken=b03f5f7f11d50a3a, 处理器架构=MSIL' 不存在。 'Platform:System.Numerics.Vectors.dll' 和 '参考:System.Numerics.Vectors,版本=4.1.4.0,文化=中性, PublicKeyToken=b03f5f7f11d50a3a,处理器架构=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"。检查到 确保程序集存在于磁盘上。如果需要此参考 通过您的代码,您可能会遇到编译错误。 [] 对于搜索路径“{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
我收到了很多这样的问题,但我看不出任何解释为什么,或者从哪里开始寻找解决方案。一切看起来都在它应该在的地方
【问题讨论】:
标签: c# .net visual-studio msbuild