Skip to content

Nuget Detection: Nuspec Version as Variable $version$ (Dynamic Versioning) #1191

@RushabhBhansali

Description

@RushabhBhansali

Summary:

Component Detection does not detect nuspec version if it's a variable $version$

Details:

How does the variable version work in Nuget ?

a .nuspec file in NuGet can have the version specified as a variable. This is typically done using a token that gets replaced with the actual version number at the time of packaging. The token for the version is $version$. This allows for dynamic versioning based on the build or release process, rather than hardcoding the version number in the .nuspec file.

Here's a simplified example of how you might specify the version in a .nuspec file using a variable:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>ExamplePackage</id>
    <version>$version$</version>
    <authors>ExampleAuthor</authors>
    <owners>ExampleOwner</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Example description</description>
    <releaseNotes>This release includes...</releaseNotes>
  </metadata>
</package>

When you pack this NuGet package, you would replace $version$ with the actual version number. This can be done automatically by tools like MSBuild or dotnet CLI by passing the version number as a parameter or by using a .csproj file that contains the version information.

The component Detection generates following error log for this:

Version '$version$' from D:\a\_work\1\s\src\Setup.PowerShell\DDSetup.nuspec could not be parsed as a NuGet version 
Version '$version$' from D:\a\_work\1\s\src\Setup.Tools\Microsoft.VisualStudio.Setup.Tools.nuspec could not be parsed as a NuGet version 
Version '$version$' from D:\a\_work\1\s\src\UpdateDriver\UpdateDriver.nuspec could not be parsed as a NuGet version 
Version '$version$' from D:\a\_work\1\s\src\VSInstaller.Managed\VSInstaller.nuspec could not be parsed as a NuGet version 

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions