Как исключить каталог и файлы из пакета NuGet, созданного с помощью Octopack через Jenkins? - PullRequest
0 голосов
/ 20 июня 2019

У меня есть служба Windows, которую нужно упаковать в пакет nuget с помощью OctoPack, но я должен исключить каталог с именем «Config» и несколько других файлов конфигурации (это специфичные для экземпляра и будут развернуты в нескольких экземплярах). .) Однако файлы всегда включаются независимо от того, что я помещаю в файл nuspec.

Каталог проекта:

Config <dir>
Code <dir>
app.config
settings.config
service.csproj
service.nuspec

Файл Nuspec:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <metadata>
        <!-- Required elements-->
        <id>service</id>
        <version>0.0.0</version>
        <description>service for app</description>
        <authors>our team</authors>
    </metadata>
    <!-- Optional 'files' node -->
    <files>
        <file src="**" exclude="Config\" />
        <file src="**" exclude="**\app.config" />
        <file src="**" exclude="**\settings.config" />
    </files>
</package>

Файл Дженкинса:

bat "dotnet-octo pack --id=service --format=NuPkg --basePath=bin\\x64\\BuildServer --version=0.0.0.${env.BUILD_ID} --overwrite"

Я уверен, что в моем файле nuspec есть ошибка или что-то в этом роде, но я не могу найти документацию для моего конкретного случая. Спасибо.

1 Ответ

0 голосов
/ 21 июня 2019

Оказывается, я слишком обдумал это.Я просто отредактировал файл Jenkins, чтобы удалить их перед упаковкой.Полностью забыл, что bat был опцией.

bat "del bin\\x64\\BuildServer\\app.config"
bat "del bin\\x64\\BuildServer\\settings.config"
bat "rmdir /s /q bin\\x64\\BuildServer\\Config"
bat "dotnet-octo pack --id=service --format=NuPkg --basePath=bin\\x64\\BuildServer --version=0.0.0.${env.BUILD_ID} --overwrite"

Однако, правильный способ сделать это через nuspec был бы

<files>
    <file src="bin\x64\BuildServer\**\*.*" exclude="bin\x64\BuildServer\app.config;bin\x64\BuildServer\settings.config;bin\x64\BuildServer\Config\*.xml" />
</files>

src означает "включить все каталоги ифайлы в bin\x64\BuildServer, где все библиотеки и т.п. находятся после сборки. И exclude означает , за исключением этих файлов. Примечание все пути указаны относительно того, где находится ваш файл nuspec (этоважно !!!).

...