Я пытаюсь создать пакет nuget из двоичного модуля PowerShell, который оборачивает другой проект C # Main Library.Я изо всех сил пытаюсь получить все необходимые библиотеки DLL, включенные в сгенерированный пакет nuget, потому что основная библиотека имеет множество зависимостей пакета nuget, которые не включены.
Причина, по которой я хочу, чтобы пакет nuget включал обаDLL-файлы двух проектов, а также необходимые DLL-файлы главной библиотеки, так что я могу создать файл psd1 для двоичного модуля PowerShell, в котором будут все необходимые DLL-библиотеки в поле RequiredAssemblies
.Это необходимо, поскольку все необходимые библиотеки DLL должны быть импортированы перед импортом основного двоичного файла DLL модуля PowerShell.
Ниже приведена структура пакета, которую я ищу:
Package
- lib
- netstandard2.0
- PowerShellModule.dll
- PowerShellModule.psd1
- MainLibrary.dll
- MainLibraryDep1.dll
- MainLibraryDep2.dll
- ...
Как только пакет nugetПосле установки
при использовании nuget pack -IncludeProjectReferences
в папке проекта двоичного модуля PowerShell он успешно включает в себя двоичную библиотеку DLL модуля PowerShell и библиотеку главной библиотеки вокончательный пакет, но ни одна из зависимостей nuget, которые есть в главной библиотеке.Есть ли способ включить их?
Одним из решений, о котором я подумал, было просто создать двоичный модуль PowerShell и убедиться, что он сгенерировал все необходимые библиотеки DLL (включая библиотеки для основной библиотеки), скопировав эти файлы в папку иУпаковка этой папки, однако, кажется очень хакерской, и я не очень хочу этого делать.
Я также знаю, что мне нужно просто собрать двоичный проект модуля PowerShell как отдельный пакет nuget, который зависит отОсновная библиотека, которая, в свою очередь, имеет все свои зависимости, однако это будет означать, что после установки всех пакетов каждое из полей RequiredAssemblies в файле psd1 должно будет несколько раз выпрыгнуть из текущего каталога, используя ..\..\
, чтобы он мог получитьв один из других зависимых пакетов, чтобы импортировать их файл DLL.Это связано с тем, что nuget устанавливает свои пакеты, и, насколько я знаю, вы не можете изменить это.