在我们的开发环境中,我们有一个 Git 存储库,其中包含一个通用组件。这个 repo 有多个功能分支,它们通过 CI 构建将 Nuget 包发布到公共(public)提要。在提要中,来自这些功能分支的包使用分支名称的预发布标签进行标识。作为消费者,我正在通过 Nuget.config 文件中提到的来源查看此提要。而且,我正在尝试使用来自该通用组件的特定功能分支的包。但是,如果该包具有更高版本,我从消费者项目调用的 Nuget 更新命令可能会从其他分支中提取预发布版本。请分享您对如何解决此问题的意见。我在更新命令中没有看到任何其他参数来提及特定的预发布标签
谢谢
桑迪普
最佳答案
有几个选项:
My.Product.With.FeatureA
和 My.Product.With.FeatureB
. allowedVersions
in packages.config
将更新限制在某个版本范围内。为此,您可能还需要使用不同的次要/补丁版本,而不仅仅是包的预发布标签。 使用 new
PackageReference
format 时在 VS 2017 15.1+(已发布)中,您有更多选择1.2.3-coolfeatureA-*
. PackageReference
从 MSBuild 中使用,您还可以定义中心功能和构建版本(例如,在 Directory.Build.props
文件中)并在包引用中使用它们。例如。您可以在 csproj
中使用这样的定义文件:<ItemGroup>
<PackageReference Include="My.Shared.LibA" Version="1.2.3-$(LibsFeatureBranch)-$(LibsBuildNumber)" />
<PackageReference Include="My.Shared.LibB" Version="1.2.3-$(LibsFeatureBranch)-$(LibsBuildNumber)" />
</ItemGroup>
连同
Directory.Build.props
文件(在项目或解决方案级别)包含:<Project>
<PropertyGroup>
<LibsFeatureBranch>CoolFeatureA</LibsFeatureBranch>
<LibsBuildNumber>20170510-</LibsBuildNumber>
</PropertyGroup>
</Project>
关于nuget - 使用具有特定预发布标签的 Nuget 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43987101/