Как исключить зависимость Microsoft.NETCore.APP - PullRequest
0 голосов
/ 24 мая 2019

Как исключить зависимость Microsoft.NETCore.App, чтобы я мог заменить ее на локально скомпилированную (исправленную) версию.

Я выполнил обычную процедуру замены пакета, сделав один свыше номер версии, и попытался скомпилировать.Сборка пыталась скомпоновать оба и умерла на этапе компиляции с CS0433 из-за дублированных ссылок.

<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
       <OutputType>Exe</OutputType>
       <TargetFramework>netcoreapp2.1</TargetFramework>
   </PropertyGroup>

   <ItemGroup>
       <ProjectReference Include="..\System.Threading.ThreadPool\System.Threading.ThreadPool.csproj"/>
       <ProjectReference Update="..\System.Threading.ThreadPool\System.Threading.ThreadPool.csproj"/>
   </ItemGroup>
</Project>

Ошибка компиляции:

C: \Программа FFiles \ dotnet \ sdk \ 2.1.604 \ Microsoft.Common.CurrentVersion.targets (2114,5): предупреждение MSB3243: нет способа разрешить конфликт между "System.Threading.ThreadPool, версия = 5.0.0.0, культура = нейтральная,PublicKeyToken = null "и" System.Threading.ThreadPool, версия = 4.1.1.0, культура = нейтральная, PublicKeyTokn = b03f5f7f11d50a3a ".Выбор «System.Threading.ThreadPool, Version = 5.0.0.0, Culture = нейтральный, PublicKeyToken = null» произвольно.[путь]

Program.cs (17,13): ошибка CS0433: тип 'ThreadPool' существует в обоих 'System.Threading.ThreadPool, версия = 4.1.1.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a'и 'System.Threading.ThreadPool, версия = 5.0.0.0, культура = нейтральная, PublicKeyToken = null' [путь]

1 Ответ

1 голос
/ 24 мая 2019

Я предполагаю, что вы скомпилировали corefx для создания обновленного пакета System.Threading.ThreadPool?

В этом случае corefx имеет документы , в которых объясняется, как это сделать.Подведем итог:

  1. Сборка corefx с вашими исправлениями

  2. Получите номер версии созданного вами corefx

  3. Добавьте PackageReference в Microsoft.Private.CoreFx.NETCoreApp с версией из шага 2

  4. Добавьте nuget.config, который указывает на каталог bin созданного вами corefx.

  5. восстановите и опубликуйте свой проект, чтобы получить измененный пользователем файл corefx.

...