Установленный пакет из точек Nuget в разные места для разных пользователей - PullRequest
0 голосов
/ 13 июня 2018

Итак, у нас есть проект (целевой .NET Framework 4.6.2), который использует 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 - хороший способ справиться с зависимостями, и почему-то он очень грязный в этой ситуации.

Кто-нибудь имеет опыт работы с этим?

...