簡體   English   中英

有條件地指定nuget軟件包版本

[英]specify nuget package version conditionally

假設我正在處理一個功能(C#項目),該功能已關閉,即尚未准備好發布。

我的項目依賴於nuget的組件,這也是我維護的。

我的功能需要更改組件以及消耗的項目。

我需要發布中間版本,並且我不希望分支。

在我的項目中,我可以關閉並發送功能。 問題是:如何在功能切換的項目中使用nuget,例如,如果功能已關閉,則我使用組件的X版本,而功能打開時使用X + 1版本。

  • 我找不到任何將條件添加到packages.config

我唯一能想到的是,對非發布環境使用不同的提要,但這可能會導致其他后勤問題。

編輯:

我的構建在CI服務器上運行,因此我需要能夠以某種方式編寫腳本。

如果您控制NuGet源,則可以使用Pre-Release功能

本質上,您可以通過在Nuget軟件包后綴-alpha-beta對Nuget軟件包進行版本控制,然后在Visual Studio中選中NuGet軟件包供稿中“包括prelease”復選框。

對於在構建服務器上使用開關,建議您使用MSBuild / MSBuild社區任務/ MSBuild擴展包。

您可以使用MSBuild運行構建步驟,該步驟可以檢查配置文件並修改.nuspec文件。 我沒有前一陣子的手頭,但是可以使用xml / msbuild來解析xml文件並對其進行更改。 IIRC的一個大“陷阱”是您需要指定.nusepc命名空間

<package xmlns="http://schemas.microsoft.com/packaging/2016/06/nuspec.xsd">

當您解析nuspec文件時,應該可以將<dependencies>元素作為目標,並使用pre-release標簽為所有依賴項添加后綴。

暫無
暫無

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

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