Укажите целевой путь к файлу пакета Octopack nuget
Я обнаружил, что OctoPack невероятно прямолинейен при создании .nupkg
файлов пакета nuget, однако я хотел бы, чтобы файл .nuspec
был включен (в настоящее время находится в другой папке, такой как obj / octopackage или что-то еще), и все библиотеки DLL должны быть помещены в lib/net452 folder
, чтобы общая структура выглядела так:
В настоящее время все, что должно находиться в папке lib / net452, просто помещается в корень вместе с _rels
и package
, и как упоминалось, что файл .nuspec
отсутствует.
Либо документация немного скудная, либо я совершенно упустил, как это сделать в моем отладочном ментальном тумане. Кто-нибудь знает, как указать в OctoPack, где конкретно разместить скомпилированный вывод в файле .nupkg
?
1 ответ:
Чтобы создать свой пакет NuGet, вы должны использовать nuget.exe , а не OctoPack. Я объясню почему через минуту.
Файл
.nuspec
служит "чертежом" для вашего пакета NuGet (.nupkg
). Поэтому короткий ответ заключается в том, чтобы просто указать местоположение в вашем файле.nuspec
, используя атрибутtarget
элемента<files>
. Подробности можно найти на сайте NuGet , но это будет выглядеть примерно так:<files> <file src="bin\$configuration$\*.dll" target="lib\net452\" /> </files>
Существует несколько способов вызова нугет.exe на этапе после сборки; многие из них также объясняются на сайте NuGet.
OctoPack не предназначен для создания пакетов для nuget.org; он разработан специально для создания пакетов для развертывания Octopus. Он создает пакеты одним из двух способов:
- если присутствует файл
В противном случае OctoPack предполагает, что проект является исполняемым файлом или компонентом, и просто упаковывает все, что он находит в выходной папке (обычноweb.config
, OctoPack предполагает, что проект является веб-проектом, и упаковывает выходные данные соответственно. Он использует файл проекта, чтобы определить, какие элементы помечены как содержимое, а какие нет. (хотя он всегда будет хватать паутину.файлы преобразования конфигурации).\Debug\bin
или\Release\bin
). Это поведение, которое вы видите.Поскольку OctoPack использует nuget.exe под капотом, файл
.nuspec
переопределит оба вышеперечисленных случая. Таким образом, хотя вы могли бы использовать OctoPack для создания своего пакета NuGet, это больше целесообразно использовать nuget.exe .