Version number not available for packages added using GlobalPackageReference in Directory.Packages.props · Issue #225 · Buildalyzer/Buildalyzer · GitHub
You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Version number not available for packages added using GlobalPackageReference in Directory.Packages.props #225
If a solution uses Directory.Packages.props and has a GlobalPackageReference declaration, then the version number of the package is missing when analyzed.
The package appears in each project's PackageReferences, but the version is blank.
changed the title [-]Version number not availabale for packages added using GlobalPackageReference in Directory.Packages.props[/-][+]Version number not available for packages added using GlobalPackageReference in Directory.Packages.props[/+]on Feb 2, 2023
Hi @phmonte,
Thanks for looking into this (great project btw).
I found this issue while using a dotnet tool called snitch, which makes use of buildalyzer. I did also report the issue on that project (spectresystems/snitch#39)
To replicate the problem:
create a new dotnet solution with a template 'hello world' console project. I'm using .Net 8.
add a Directory.Packages.props file containing the following:
With this solution, try the following code which uses Buildalyzer:
var mgr = new AnalyzerManager();
var projAnalyzer = mgr.GetProject(@"{YourPath}\{YourConsoleProject}.csproj");
var results = projAnalyzer.Build();
var packages =results.Single().PackageReferences;
var styleCop = packages["StyleCop.Analyzers"];
var version = styleCop["Version"];
Console.WriteLine($"stylecop version = '{version}'", version);
When I run this locally, the version is blank.
I hope this explanation is clear enough to explain the problem I see. Please do ask any questions you might have, and thanks again for taking a look.
I added a reproducer. I'm not sure why you use <GlobalPackageReference> in this case (or at all, I could not find any documentation on it, if you can provide that, that would be appreciated), but the version is not provided by the BuildStatusEventArgs, I'm not sure why,
If you use <PackageReference> instead, the version is available.
@AndrewPearson See my reporducer. I'm affraid that this is bug/feature that is not due to a bug in Buildalyzer. If I may ask, why do you want to know this version?
I use a tool called snitch, which makes use of buildalyzer. Snitch fails to run on a project I have, producing errors. I debugged into snitch's code, and found this issue with the version number being blank.
Activity
[-]Version number not availabale for packages added using GlobalPackageReference in Directory.Packages.props[/-][+]Version number not available for packages added using GlobalPackageReference in Directory.Packages.props[/+]phmonte commentedon Apr 7, 2024
@AndrewPearson, I tried to reproduce the problem and it worked, do you have an example of the project?
AndrewPearson commentedon Apr 8, 2024
Hi @phmonte,
Thanks for looking into this (great project btw).
I found this issue while using a dotnet tool called snitch, which makes use of buildalyzer. I did also report the issue on that project (spectresystems/snitch#39)
To replicate the problem:
With this solution, try the following code which uses Buildalyzer:
When I run this locally, the version is blank.
I hope this explanation is clear enough to explain the problem I see. Please do ask any questions you might have, and thanks again for taking a look.
phmonte commentedon Apr 9, 2024
Thank you very much, I believe it is now possible to simulate, I will update soon.
Corniel commentedon Apr 11, 2024
I added a reproducer. I'm not sure why you use
<GlobalPackageReference>in this case (or at all, I could not find any documentation on it, if you can provide that, that would be appreciated), but the version is not provided by theBuildStatusEventArgs, I'm not sure why,If you use
<PackageReference>instead, the version is available.AndrewPearson commentedon Apr 11, 2024
A description of the use of
<GlobalPackageReference>is available hereCorniel commentedon Apr 19, 2024
@AndrewPearson See my reporducer. I'm affraid that this is bug/feature that is not due to a bug in Buildalyzer. If I may ask, why do you want to know this version?
May be, a (to be created) rule of .NET project file analyers I might solve what you want to achieve?
AndrewPearson commentedon Apr 20, 2024
I use a tool called snitch, which makes use of buildalyzer. Snitch fails to run on a project I have, producing errors. I debugged into snitch's code, and found this issue with the version number being blank.