2014-06-05 75 views
0

我正在使用teamcity和章魚部署我的包。我使用teamcity創建軟件包,然後使用Octopus部署到不同的環境。我有一個Resources文件夾,需要在teamcity中作爲單獨的步驟進行復制。現在我希望將該文件夾包含在軟件包中,以便我可以將該軟件包部署到其他域中的遠程服務器上。我已經定義了以下文件,將資源文件夾包含到主項目的內容文件夾中。但是發生了什麼呢?它只是在目標中創建一個文件夾,但不要複製項目中的其他文件。請引導,因爲我想要的是將資源文件夾與我的發佈網站文件一起包含在軟件包中。我只是想要資源文件夾成爲包的一部分。請指導要包含其他文件夾的Nuget包

<?xml version="1.0" ?> 
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> 
<metadata> 
<id>Services</id> 
<version>1.0.0.0</version> 
<authors></authors> 
<owners></owners> 
<requireLicenseAcceptance>false</requireLicenseAcceptance> 
<description>Services.nuspec build package</description> 
<releaseNotes /> 
</metadata> 
<files> 
    <file src="..\Resources\**\*.*" target="Content\Resources" /> 
</files> 
</package> 

包裝內容創建使用上述代碼的包後: -

. _rels 
. package 
. content\resources 
. [content_type 
. Services.nuspec 
+0

你有一個額外的'。'在你的src路徑中。它應該是「\ .Resources \」嗎?還要檢查.nupkg文件的內容,看它裏面是否有文件。 –

+0

是的。是我的錯。更新了代碼。當使用此nuspec創建包時,它僅創建一個內容文件夾,而不是任何其他發佈文件。 – sam

+0

您是否使用OctoPack? – SteveChapman

回答

0

如果您使用OctoPack,這是正常現象。引述documentation on GitHub

如果<files>部分存在,OctoPack不會嘗試自動任何額外的文件添加到您的包,所以你需要明確瞭解哪些文件要包括。

如果你走這條路線,你需要指定你想包含在nuspec的<files>部分的所有其他文件。

如果您不使用OctoPack,則適用類似的規則。請參閱documentation on nuget.org

如果遵循創建包中描述的約定,則不必在.nuspec文件中顯式指定文件列表。請注意,如果您指定了任何文件,那麼約定將被忽略,並且僅包含.nuspec文件中列出的文件。我見過使用

更新

一種混合的方法是使用的MSBuild發佈目標打造&網站發佈到本地文件夾,(過濾掉所有的編譯時文件喜歡。 cs源文件),放入其他文件,然後只需包含一個<file src="**/*.*" />以將根文件夾下的所有內容打包。需要使用根路徑/ nuget.exe進行一些自定義,但它可能會使整個過程更整潔,維護也稍微少一點。

Useful information here這可能會幫助您開始。