在我们的开发环境中,我们有一个Git repo,它包含一个通用组件。此repo具有多个功能分支,这些功能分支通过CI构建将Nuget包发布到公共源。在Feed中,来自这些功能分支的包使用分支名称的预发布标记进行标识。作为消费者,我正在通过Nuget.config文件中提到的来源查看此Feed。而且,我正在尝试使用来自该公共组件的特定功能分支的包。但是,如果该软件包具有更高版本,我从消费者项目调用的Nuget更新命令可能会从其他分支中提取预发布版本。请分享您对如何解决此问题的意见。我没有在update命令中看到任何额外的参数来提及特定的预发布标记
由于
和Sandeep
答案 0 :(得分:2)
有几个选择:
My.Product.With.FeatureA
和My.Product.With.FeatureB
。allowedVersions
in packages.config
限制对版本范围的更新。为此,您可能还需要使用不同的次要/补丁版本,而不仅仅是包的预发行标记。在VS 2017 15.1+(已发布)中使用new PackageReference
format时,您还有更多选择
1.2.3-coolfeatureA-*
。由于MSBuild使用PackageReference
,您还可以定义中心功能和构建版本(例如在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>