Создать пакет nuget, который включает другой пакет nuget - PullRequest
0 голосов
/ 06 декабря 2018

Я создал .NET Standard проект, в котором я установил версию 4.4.4 пакета System.ServiceModel.Http nuget.В этот пакет также входит dll System.ServiceModel.Primitives ... Я добавляю изображение:

enter image description here

Я создал пакет nuget из своего проекта с помощью команды

.\nuget.exe pack MyProjectFile.csproj -Build -ExcludeEmptyDirectories -IncludeReferencedProjects -OutputDirectory  MyOutputDir

Теперь я должен установить этот пакет в другом решении, в .NET Framework проекте.Но по какой-то причине, когда я запускаю проект, я получаю эту ошибку:

Не удалось загрузить файл или сборку 'System.ServiceModel.Primitives, Версия = 4.2.0.3, Культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a'или одна из его зависимостей.

Versione 4.2.0.3 dll System.ServiceModel.Primitives находится внутри версии пакета 4.4.4

Я отредактировал файл моего проекта .NET Standard ввот так:

<PackageReference Include="System.ServiceModel.Primitives" Version="4.4.4" />
<PackageReference Include="System.ServiceModel.Http" Version="4.4.4" />

Но когда я устанавливаю пакет в свой .NET Project, я все равно получаю эту ошибку.Никакой внешний пакет не был включен в мой пакет ... Что мне не хватает?

Спасибо

РЕДАКТИРОВАТЬ

Я также ожидал, когда яустановите пакет nuget, появится окно и скажет что-то вроде «Вам нужно установить также пакет A и пакет B. Продолжить или нет?».Вместо этого ничего не появляется ....

1 Ответ

0 голосов
/ 06 декабря 2018

Если вы используете стандартные проекты .net, вы можете использовать dotnet CLI вместо nuget.exe.Я всегда находил это более чистым и намного меньшим процессом.Вы можете использовать что-то вроде этого с dotnet CLI

dotnet pack -c release -o MyOutputDir

Здесь выходная папка является необязательной, и конфигурация будет "отладочной" по умолчанию.Я использовал это для нескольких нюджетов, и у меня никогда не было проблем со ссылками на нюгет.

...