Skip to content

[Feature]: Support overriding centrally managed version on a package reference #9465

@cristinamanum

Description

@cristinamanum

Details about Problem

Feature request

CPVM support version overrides.

Version overrides are supported as a product of MsBuild flexibility.

Option 1: use the Import MsBuild element but there is not a build in experience for the version overrides.

<Project>
	  <ItemGroup>
	    <PackageVersion Include="Xunit.StaFact.Mac" Version="1.0.24-beta-g88c3555268"/>
	    <PackageVersion Include="xunit.stafact" Version="1.0.24-beta-g88c3555268"/>
	  </ItemGroup>
	
	  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory).., Directory.Packages.props))\Directory.Packages.props" Condition="'$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory).., Directory.Packages.props))' != ''" />
	</Project>

Option 2 : use the MsBuild Update as :
<PackageVersion Update="Foo" Version="1.2.3"/>

Option 3: use the MsBuild Conditions as :

Directory.Packages.Props

<Project>
  <ItemGroup Condition="'$(Group)'=='Test'">
    <PackageVersion Include="Newtonsoft.Json" Version="12.0.2" />
  </ItemGroup>
  <ItemGroup>
    <PackageVersion Include="Newtonsoft.Json" Version="12.0.3" />
    <PackageVersion Include="EntityFramework" Version="6.2.0" />
    <PackageVersion Include="ParentLibTestCM1" Version="3.0.0" />
    <PackageVersion Include="LibTestCM1" Version="3.0.0" />
    <PackageVersion Include="NUnit" Version="3.12.0" />
    <PackageVersion Include="Microsoft.Azure.Storage.Common" Version="11.1.2" /> 
  </ItemGroup>
</Project>

Directory.Build.props (for the project that needs Newtonsoft 12.0.2)

<Project>
  <PropertyGroup>
    <Group>Test</Group>
  </PropertyGroup>
</Project>

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions