Могу ли я запретить пакету nuget загружать все его зависимости? - PullRequest
0 голосов
/ 28 апреля 2020

My C#. Net Framework 4.7.2 В проекте используется пакет NuGet, назовите его пакетом A. Пакет A имеет ссылку на пакет B. Пакет B вызывает у меня проблемы, и я не хочу его мой проект. Пакет B является только зависимостью из-за реализации по умолчанию интерфейса, предоставленного в пакете A. Я могу предоставить новую реализацию интерфейса, но как я могу предотвратить восстановление NuGet из-за нежелательного и теперь ненужного пакета B?

1 Ответ

0 голосов
/ 29 апреля 2020

Я могу предоставить новую реализацию интерфейса, но как я могу предотвратить восстановление NuGet из-за нежелательного и теперь ненужного пакета B?

Поскольку вы установили пакет A с его зависимостью Package B в вашем проекте, вы можете попробовать это:

First , попробуйте ввести файл packages.config и удалить Package B следующим образом:

Delete это:

<package id="Package B" version="xxx" targetFramework="net472" />

Второй , удалите пакет B из файла xxx.csproj (выгрузите свой проект -> Edit xxx.csproj) и удалите это:

<Reference Include="Package B, Version=xxx Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
      <HintPath>..\packages\xxx\PackageB.dll</HintPath>
    </Reference>

Затем перезагрузите ваш проект, и он не будет загружать пакет B на этапе восстановления или во время сборки.

Кроме того , если вы хотите установить пакет nuget без его зависимостей, вы можете попробовать запустить это в Tools -> NuGet Package Manager -> Nuget Packager Console:

Install-Package <package name> -IgnoreDependencies

Он не установит все зависимости пакета nuget.

Если в вашем пакете nuget несколько зависимостей и вы хотите удалить только одну из них, вы можете только установите пакет nuget и все зависимости как обычно, а затем удалите пакет nuget, используя мое решение.

...