簡體   English   中英

在C#項目中更新帶有和不帶有預發行標志的nuget軟件包

[英]Updating nuget package with and without prerelease flag in a C# project

我們使用git作為源代碼控制,並且遵循git flow工作流程。

我們正在使用Visual Studio 2013

我們正在使用Teamcity v8.1

我們有2個C#解決方案。 解決方案A和解決方案B。解決方案B使用解決方案A創建的nuget程序包。

我們正在使用teamcity作為構建服務器。 我們有2個構建配置來創建Project A nuget包。 一個構建配置創建nuget軟件包的預發行版本,另一個構建配置創建nuget軟件包的穩定版本。

用於創建預發行版本nuget的構建配置在dev分支上進行偵聽。 穩定版本的構建配置在master / release / hotfix分支上偵聽

在開發分支中工作時,我們使用nuget軟件包的預發行版本。 但是,當我們創建發行分支時,我們想使用nuget軟件包的穩定版本。

到目前為止,我們已經嘗試了以下操作:在B項目csproj文件中,我們在BeforeBuild目標中添加了一個元素,該元素執行nuget.exe來更新nuget軟件包的預發行版本。 效果很好,因為每次我們構建項目B時,我們都會獲得nuget軟件包的最新預發行版本。

但是當我們在release / master / hotfix分支中時,我們不需要預發行版本,而是想要穩定的版本。

我已經創建了一個Powershell腳本,該腳本是從BeforeBuild目標中的項目B csproj文件執行的

在powershell腳本中,我可以找到我們所在的git分支,但還沒有找到使用nuget.exe將nuget軟件包更新到最新穩定版本的方法。 如果我可以在powershell腳本中使用nuget cmdlet,則可以運行帶有version標志的update-package,但是在使用nuget.exe時不支持

您是否做過類似的事情,如何解決這個問題?

回來時,我還嘗試使用Powershell自動更新和安裝軟件包。 據我所知,沒有辦法在Visual Studio之外使用Visual Studio cmdlet。

您可以自己做所有事情。 更新packages.config,運行nuget update ,更新csproj文件。

您的軟件包可能包含install.ps1文件。 這也使用Visual Studio cmdlet。 例如,install.ps1可以將配置文件添加到Visual Studio項目中,並將“ Copy to Output Directory設置為Copy if newer 這意味着您還必須將這些更改也添加到csproj中。

暫無
暫無

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

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