[英]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.