Skip to content

Pack doesn't give enough info on invalid version strings #6806

@jaredpar

Description

@jaredpar

When pack encounters an empty version string in a dependency node it should include the line number in the error message. Today it only says

>  error : '' is not a valid version string. 

That is fine for small nuspec. But when your nuspec has 20+ entries where every single version is a replacement string then it's a bit madenning to track down which one has a typo in your build script.

Example of a problem nuspec file:

<dependencies>
  <group targetFramework="netstandard1.3">
    <dependency id="Microsoft.CodeAnalysis.Analyzers"              version="$MicrosoftCodeAnalysisAnalyzersVersion$" />

    <dependency id="System.AppContext"                             version="$SystemAppContextVersion$"/>
    <dependency id="System.Collections"                            version="$SystemCollectionsVersion$"/>
    <dependency id="System.Collections.Concurrent"                 version="$SystemCollectionsConcurrentVersion$"/>
    <dependency id="System.Collections.Immutable"                  version="$SystemCollectionsImmutableVersion$"/>
    <dependency id="System.Console"                                version="$SystemConsoleVersion$"/>
    <dependency id="System.Diagnostics.Debug"                      version="$SystemDiagnosticsDebugVersion$"/>
    <dependency id="System.Diagnostics.FileVersionInfo"            version="$SystemDiagnosticsFileVersionInfoVersion$" exclude="Compile" />
    <dependency id="System.Diagnostics.StackTrace"                 version="$SystemDiagnosticsStackTraceVersion$" exclude="Compile" />
    <dependency id="System.Diagnostics.Tools"                      version="$SystemDiagnosticsToolsVersion$"/>
    <dependency id="System.Dynamic.Runtime"                        version="$SystemDynamicRuntimeVersion$"/>
    <dependency id="System.Globalization"                          version="$SystemGlobalizationVersion$"/>
    <dependency id="System.IO.Compression"                         version="$SystemIOCompressionVersion$" />
    <dependency id="System.IO.FileSystem"                          version="$SystemIOFileSystemVersion$"/>
    <dependency id="System.IO.FileSystem.Primitives"               version="$SystemIOFileSystemPrimitivesVersion$"/>
    <dependency id="System.Linq"                                   version="$SystemLinqVersion$"/>
    <dependency id="System.Linq.Expressions"                       version="$SystemLinqExpressionsVersion$"/>
    <dependency id="System.Reflection"                             version="$SystemReflectionVersion$"/>
    <dependency id="System.Reflection.Metadata"                    version="$SystemReflectionMetadataVersion$"/>
    <dependency id="System.Resources.ResourceManager"              version="$SystemResourcesResourceManagerVersion$"/>
    <dependency id="System.Runtime"                                version="$SystemRuntimeVersion$"/>
    <dependency id="System.Runtime.Extensions"                     version="$SystemRuntimeExtensionsVersion$"/>
    <dependency id="System.Runtime.InteropServices"                version="$SystemRuntimeInteropServicesVersion$"/>
    <dependency id="System.Runtime.Numerics"                       version="$SystemRuntimeNumericsVersion$"/>
    <dependency id="System.Security.Cryptography.Algorithms"       version="$SystemSecurityCryptographyAlgorithmsVersion$"/>
    <dependency id="System.Security.Cryptography.Encoding"         version="$SystemSecurityCryptographyEncodingVersion$"/>
    <dependency id="System.Security.Cryptography.X509Certificates" version="$SystemSecurityCryptographyX509CertificatesVersion$"/>
    <dependency id="System.Text.Encoding"                          version="$SystemTextEncodingVersion$"/>
    <dependency id="System.Text.Encoding.CodePages"                version="$SystemTextEncodingCodePagesVersion$" exclude="Compile" />
    <dependency id="System.Text.Encoding.Extensions"               version="$SystemTextEncodingExtensionsVersion$"/>
    <dependency id="System.Threading"                              version="$SystemThreadingVersion$" exclude="Compile" />
    <dependency id="System.Threading.Tasks"                        version="$SystemThreadingTasksVersion$"/>
    <dependency id="System.Threading.Tasks.Parallel"               version="$SystemThreadingTasksParallelVersion$"/>
    <dependency id="System.Threading.Thread"                       version="$SystemThreadingThreadVersion$" exclude="Compile" />
    <dependency id="System.ValueTuple"                             version="$SystemValueTupleVersion$" />
    <dependency id="System.Xml.ReaderWriter"                       version="$SystemXmlReaderWriterVersion$"/>
    <dependency id="System.Xml.XDocument"                          version="$SystemXmlXDocumentVersion$"/>
    <dependency id="System.Xml.XmlDocument"                        version="$SystemXmlXmlDocumentVersion$" exclude="Compile" />
    <dependency id="System.Xml.XPath.XDocument"                    version="$SystemXmlXPathXDocumentVersion$" exclude="Compile" />
  </group>
</dependencies>

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions