Укажите целевой путь файла пакета Octopack
Я обнаружил, что OctoPack невероятно прост при создании .nupkg
файлы пакетов nuget, однако мне бы хотелось .nuspec
включенный файл (в настоящее время находится в другой папке, такой как obj/octopackage или что-то), и все библиотеки должны быть помещены в 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>
Есть несколько способов вызвать nuget.exe на этапе после сборки; многие объяснены на сайте NuGet.
OctoPack не предназначен для создания пакетов для nuget.org; Он предназначен специально для создания пакетов для Octopus Deploy. Это создает пакеты одним из двух способов:
- Если есть
web.config
При наличии файла OctoPack предполагает, что проект является веб-проектом, и соответствующим образом упаковывает выходные данные. Он использует файл проекта, чтобы определить, какие элементы помечены как содержимое, а какие нет (хотя он всегда будет захватывать файлы преобразования web.config). - В противном случае OctoPack предполагает, что проект является исполняемым файлом или компонентом, и просто упаковывает все, что находит в выходной папке (обычно
\Debug\bin
или же\Release\bin
). Это поведение, которое вы видите.
Так как OctoPack использует nuget.exe под капотом, .nuspec
файл переопределит оба вышеупомянутых случая. Поэтому, хотя вы можете использовать OctoPack для создания пакета NuGet, более уместно использовать nuget.exe.