假设我正在处理一个关闭的功能(C#项目),即尚未准备好发布。
我的项目取决于通过nuget的组件,这也是我维护的。
我的功能需要更改组件以及我的消费项目。
我需要制作中间版本,我不想分支。
在我的项目中,我可以切换功能并发货。问题是:如何在功能切换项目中使用nuget,这样如果功能关闭,我会使用组件的版本X,以及启用该功能时的版本X + 1.
packages.config
我唯一能想到的是,为非发布环境使用不同的Feed,但这可能会导致其他后勤问题。
编辑:
我的构建在CI服务器上运行,因此我需要能够以某种方式编写脚本。
答案 0 :(得分:0)
如果您控制NuGet源,则可以使用Pre-Release functionality。
基本上你的版本控制你的Nuget包,方法是用-alpha
或-beta
加后缀,然后在Visual Studio中勾选"包含预发布"的复选框。在你NuGet包饲料。
对于在构建服务器上使用开关,我建议您查看使用MSBuild / MSBuild社区任务/ MSBuild扩展包。
您可以使用MSBuild运行构建步骤,该步骤可以检查配置文件并修改.nuspec文件。我不像以前那样拥有源代码,但是可以使用xml / msbuild来解析xml文件并对其应用更改。 IIRC是一个很大的"陷阱"是你需要指定.nusepc
命名空间
<package xmlns="http://schemas.microsoft.com/packaging/2016/06/nuspec.xsd">
当您解析nuspec文件时。然后应该可以定位<dependencies>
元素,并使用预发布标记为所有依赖项添加后缀。