Как создать пакет Nuget с вложенными зависимостями - PullRequest
0 голосов
/ 08 мая 2020

Я работаю над решением. NET Core. Для одного из проектов в рамках решения мне нужно создать пакет Nuget.

Проект A имеет ссылку на другой проект B в решении, настроенном как ссылка на проект. Проект B зависит от пакета Nuget C.

Теперь, когда я создаю пакет Nuget для A, он включает A.dll и B.dll, но не C .dll

Кто-нибудь может мне помочь в этом разобраться? Как я могу включить все 3 .dll?

Спасибо, Энди

Ответы [ 2 ]

1 голос
/ 08 мая 2020

Конечно, вы можете решить эту проблему, создав свой собственный файл nuspe c. Я не уверен, как это сделать в контексте файла csproj.

Например, с #csla мы управляем всеми нашими собственными nuspe c файлами , потому что очень много движущихся parts.

В файле nuspe c вы можете указать определенные c файлы, которые хотите включить, вместе с любыми зависимостями пакетов. Итак, в вашем примере это звучит так, как будто ваш nuspe c будет включать сборки проекта A и B, поэтому что-то вроде этого:

<files>
  <file src="..\..\bin\Release\netstandard\netstandard2.1\**\A.dll" target="lib\netstandard2.1" />
  <file src="..\..\bin\Release\netstandard\netstandard2.1\**\B.dll" target="lib\netstandard2.1" />
</files>

И объявит зависимость от package C.

<dependencies>
  <group targetFramework="netstandard2.1">
    <dependency id="C" version="1.0.0" />
  </group>
</dependencies>

Вы можете увидеть множество примеров в репозитории #csla. Возможно, самым близким (без использования подстановочных знаков) является файл Csla.Blazor.nuspe c.

0 голосов
/ 08 мая 2020

См. https://github.com/NuGet/Home/issues/3891 для запроса функции dotnet.exe pack команде клиентов nuget. В этой проблеме есть обходные пути и споры.

Спасибо, Роб Релиа, команда клиентов NuGet

...