Nuget安装的软件包指向不同用户的不同位置

时间:2018-06-12 22:18:43

标签: c# .net dependencies nuget

所以我们有一个使用4.6.2的项目(目标.NET框架System.Diagnostics.Tracing),它是来自其他软件包链的依赖项。

用户1通过Nuget安装它并将代码共享给其他人。但是,现在我们陷入混乱,最终导致至少一个人The located assembly's manifest definition does not match the assembly reference (Exception from HRESULT: 0x80131040的错误。

试图修复它,我们意识到对System.Diagnostics.Tracing的引用对我们每个人都不同。

用户1:它指向C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.2\Facades\System.Diagnostics.Tracing.dll

用户2:它指向C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Diagnostics.Tracing.dll

用户3:它实际指向已安装的Nuget包C:\Users\User3\Documents\Project\Test\packages\System.Diagnostics.Tracing.4.3.0\lib\net462\System.Diagnostics.Tracing.dll

的唯一一个

由于某种原因,用户3是无法运行项目的人。用户1和用户2都没问题。

.csproj文件确实具有此功能。

<Reference Include="System.Diagnostics.Tracing">
    <HintPath>..\packages\System.Diagnostics.Tracing.4.3.0\lib\net462\System.Diagnostics.Tracing.dll</HintPath>
    <Private>True</Private>
</Reference>

我们没有想到为什么会发生这种情况,以及如何解决这个问题。 Nuget应该是处理依赖关系的好方法,在某种程度上它在这种情况下非常混乱。

任何人都有处理此问题的经验吗?

0 个答案:

没有答案