-
Notifications
You must be signed in to change notification settings - Fork 139
Description
Microsoft.VisualStudio.SolutionPersistence has multiple version fields that differ because the source-build project passes some but not all of the necessary version overrides:
- MSFT:
FileVersion:1.0.52.6595,ProductVersion:1.0.52+19c3ca7dc9.RR,ProductVersionNumber:1.0.52.0 - SB:
FileVersion:1.0.52,ProductVersion:1.0.0+0f576f0a...,ProductVersionNumber:1.0.0.0
The source-build project vs-solutionpersistence.proj passes /p:FileVersion=$(SolutionPersistenceVersion) and /p:PackageVersion=$(SolutionPersistenceVersion) (both 1.0.52), but does not pass /p:Version= or /p:VersionPrefix=. The upstream build relies on Nerdbank.GitVersioning (referenced in Directory.Packages.props) to compute versions from git commit history, which cannot work correctly in the VMR context. The SB project partially compensated with FileVersion and PackageVersion overrides but missed Version, causing two problems:
-
FileVersion revision is
0: The/p:FileVersion=1.0.52override is only 3 components, so the revision defaults to0. The MSFT build's NBGV computes the revision from git commit height (6595). -
ProductVersion is
1.0.0instead of1.0.52: Without/p:Version=1.0.52, the project'sversion.jsonbase of1.0is used, and NBGV cannot compute the correct commit height in the VMR context, so the version falls back to1.0.0. This flows into InformationalVersion/ProductVersion and ProductVersionNumber.
Affected DLLs
Microsoft.VisualStudio.SolutionPersistence.dll
Metadata
Metadata
Assignees
Labels
Type
Projects
Status