簡體   English   中英

如何通過Jenkins從用Octopack構建的NuGet包中排除目錄和文件?

[英]How to exclude directory and files from NuGet package built with Octopack via Jenkins?

我有一個Windows服務,需要使用OctoPack打包到nuget包中,但是我必須排除一個名為“ 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>

Jenkins文件:

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

我確定nuspec文件中存在錯誤或某些錯誤,但是找不到針對我特定情況的任何文檔。 謝謝。

原來我想得太多了。 我只是編輯了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所有目錄和文件,其中所有dll等都在構建之后。 exclude意思是除了這些文件。注意所有路徑都與nuspec文件所在的位置有關(這很重要!!! )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM