我們的第一步是爲我們的.sln文件生成MsBuild。我們通過我們的平臺和配置,一切都建立正確。TeamCity nuget pack步驟丟失文件包裝
接下來我們要NuGet打包Octopus Deploy使用的所有文件。在這一步中,我們指定我們所有的.csproj文件(不知道爲什麼,一切都已建成)
創建的軟件包包含2個文件夾,其中包含所有需要的文件減號bin和只包含lib文件夾這些項目編譯了dll。它不包括項目中引用的任何其他dll。
我們的第一步是爲我們的.sln文件生成MsBuild。我們通過我們的平臺和配置,一切都建立正確。TeamCity nuget pack步驟丟失文件包裝
接下來我們要NuGet打包Octopus Deploy使用的所有文件。在這一步中,我們指定我們所有的.csproj文件(不知道爲什麼,一切都已建成)
創建的軟件包包含2個文件夾,其中包含所有需要的文件減號bin和只包含lib文件夾這些項目編譯了dll。它不包括項目中引用的任何其他dll。
聽起來你可能更容易使用Octopack來處理要部署的NuGet包的創建。
步驟1。將Octopack NuGet package安裝到可部署應用程序的項目中。
Install-Package OctoPack
步驟2。確保在主編譯之前有一個構建步驟,它將安裝任何引用的NuGet包。
步驟3。從下載頁面安裝TeamCity plugin for Octopus deploy並重新啓動TeamCity服務器服務
步驟4。現在,您將在MSBuild運行器配置中看到更多選項,如果您在構建配置中選中以下框,它將爲您創建一個NuGet軟件包,該軟件包應包含成功部署所需的所有內容。
作爲一個小尖,我通過參考輸出包(而不是等待它爲僞影在構建結束連接,因此需要兩個發佈包直八達通生成配置)
希望這有助於
如果的NuGet包不包裝喲你需要從你的項目文件中得到你想要的,你必須創建一個NuGet規範文件並指定應該如何打包。對於一個簡單的Web應用程序來說,只需創建一個簡單的.spec文件並將其放入Web應用程序目錄中,但對於其他可能稍微複雜的項目。查看Nuspec參考資料,瞭解如何添加您的內容和依賴關係。 https://docs.nuget.org/create/nuspec-reference
每次向項目添加或刪除文件時,是否必須手動更新.nuspec? – user3953989
不,但可能需要更新,如果您需要新的依賴關係。 spec文件可以讓你完全控制它的封裝和封裝。 Nuget也可以直接從你的項目文件創建包,但在你的情況下,它不能像你想要的那樣工作。 –
我會給這個鏡頭看看它是如何工作的。它看起來好像沒有任何來自外部引用的dll被包含在我的包中。即AutoFac,網絡框架,EF等。這也包括那些? – user3953989
如果它們被引用爲NuGet包,那麼安裝程序步驟應該在構建之前恢復它們。如果它們不是標準軟件包引用,那麼它們可能需要在源代碼控制之下(不可取) –
以自動方式處理這些類型的非NuGet引用的最佳實踐是什麼? – user3953989