Skip to content

Add/Improve support for Central Package Management #544

Open
@navruz-rakhimov

Description

@navruz-rakhimov

Describe the Bug

NuGetizer is ignoring central package management.

Steps to Reproduce

  1. Create an empty solution
  2. Create a Directory.Packages.props and enable central package management for the solution.
<Project>
    <PropertyGroup>
        <EnablePackageVersionOverride>true</EnablePackageVersionOverride>
        <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
    </PropertyGroup>
    <ItemGroup>
        <PackageVersion Include="NuGetizer" Version="1.2.3" />
        <PackageVersion Include="Unity" Version="5.11.10" Condition=" '$(TargetFramework)' == 'net8.0' " />
        <PackageVersion Include="Unity" Version="4.0.1" Condition=" '$(TargetFramework)' == 'net472' " />
    </ItemGroup>
</Project>
  1. Add a class library with the following project file content
<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <TargetFrameworks>net8.0;net472</TargetFrameworks>
        <ImplicitUsings>enable</ImplicitUsings>
        <PackageId>MyClassLib</PackageId>
        <Version>1.0.0</Version>
        <Nullable>enable</Nullable>
        <LangVersion>12</LangVersion>
    </PropertyGroup>
    
    <ItemGroup>
        <PackageReference Include="NuGetizer" />
        <PackageReference Include="Unity" />
    </ItemGroup>
    
</Project>

Expected Behavior

I expected the following dependencies in the nuspec file when I dotnet pack:

<dependencies>
      <group targetFramework="net8.0">
          <dependency id="Unity" version="5.11.10" />
      </group>
      <group targetFramework=".NETFramework4.7.2">
          <dependency id="Unity" version="4.0.1" />
      </group>
</dependencies>

but I am getting:

<dependencies>
      <group targetFramework="net8.0">
          <dependency id="Unity" version="5.11.10" />
      </group>
      <group targetFramework=".NETFramework4.7.2">
          <dependency id="Unity" version="5.11.10" />
      </group>
</dependencies>

Exception with Stack Trace

Version Info

Additional Info

Central Package Management works fine when I use dotnet pack command alone without NuGetizer.
Similarly, I can conditionally specify different versions in the project file with NuGetizer if the Central Package Management disabled.

The problem is that I can't use both Central Package Management and NuGetizer to use different versions of a dependency per target when multitargeting.

Back this issue
Back this issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions