假设我正在开发一个已关闭的功能(C# 项目),即尚未准备好发布。
我的项目通过 nuget 依赖于一个组件,这也是我维护的。
我的功能需要更改组件以及我的消费项目。
我需要发布中间版本,我不喜欢分支。
在我的项目中,我可以关闭功能并发布。问题是:我如何在功能切换项目中使用 nuget,这样如果功能关闭,我使用组件的 X 版本,当功能打开时使用 X+1 版本。
- 我找不到向
packages.config
添加条件的方法
我唯一能想到的是,为非发布环境使用不同的提要,但这可能会导致其他后勤问题。
编辑:
我的构建运行在 CI 服务器上,所以我需要能够以某种方式编写脚本。
最佳答案
如果您控制了 NuGet 源,那么您可以使用 Pre-Release functionality .
本质上,您通过为 Nuget 包添加 -alpha
后缀来对其进行版本控制。或 -beta
然后在 Visual Studio 中勾选 NuGet 包提要中的“包含预发布版”复选框。
要在构建服务器上使用开关,我建议您查看使用 MSBuild/MSBuild Community Tasks/MSBuild Extension pack。
您可以使用 MSBuild 运行构建步骤,它可以检查配置文件并修改 .nuspec 文件。我没有像前一段时间那样手头的源代码,但是可以使用 xml/msbuild 来解析 xml 文件并对其应用更改。 IIRC 的一个大“陷阱”是您需要指定 .nusepc
命名空间
<package xmlns="http://schemas.microsoft.com/packaging/2016/06/nuspec.xsd">
当您解析 nuspec 文件时,应该可以将 <dependencies>
作为目标元素并使用预发布标签为所有依赖项添加后缀。
关于c# - 有条件地指定 nuget 包版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40867530/