【问题标题】:Dotnet Pack vs Nuget.exe Pack, version downgrade errorDotnet Pack vs Nuget.exe Pack,版本降级错误
【发布时间】:2021-09-17 22:21:41
【问题描述】:

我们已从使用 nuget.exe 包更改为 dotnet 包(以摆脱对 .nuspec 文件的需要)

我们曾经运行过这个命令:

    nuget pack "MyComp.Shared\MyComp.Shared.csproj" -OutputDirectory c:\nugetlocal -version 2021.7.7.1149-local -symbols

在开发过程中,我们在本地项目中使用这个打包好的 nuget 不会有任何问题。

现在我们运行

    dotnet pack "MyComp.Shared\MyComp.Shared.csproj" -output c:\nugetlocal -version 2021.7.7.1149-local --include-symbols

但是,当我们使用这个包时,我们现在会遇到版本降级错误。使用第一个命令打包 nuget.exe 时不会发生这种情况。

错误

    Severity    Code    Description Project File    Line    Suppression State   Tool
    Error   NU1605  Detected package downgrade: MyComp.Enums from 2021.7.7.1149-local to 2021.7.5.1317. Reference the package directly from the project to select a different version. 
     MyComp.Processors -> MyComp.Shared 2021.7.7.1149-local -> MyComp.Enums (>= 2021.7.7.1149-local) 
     MyComp.Processors -> MyComp.Enums (>= 2021.7.5.1317)   MyComp.Processors   C:\Users\uzzer\source\repos\MyCompp\MyComp.Processors\MyComp.Processors.csproj  

Nuget 包项目

<Project Sdk="Microsoft.NET.Sdk">
    
  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <PackageId>MyComp.Shared</PackageId>
    <Description>MyComp.Shared</Description>
    <Authors>MyComp</Authors>
    <Company>MyComp</Company> 
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    <RestoreProjectStyle>PackageReference</RestoreProjectStyle>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="FluentValidation" Version="10.1.0" />
    <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Abstractions" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="5.0.6" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.ViewFeatures" Version="2.2.0" />
    <PackageReference Include="Microsoft.Extensions.Identity.Stores" Version="5.0.6" />
    <PackageReference Include="Microsoft.Extensions.Identity.Core" Version="5.0.6" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\MyComp.Extensions\MyComp.Extensions.csproj" />
    <ProjectReference Include="..\MyComp.Enums\MyComp.Enums.csproj" />
  </ItemGroup>

</Project>

消费项目

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="MyComp.Enums" Version="2021.7.5.1317" />
  </ItemGroup>

</Project>

【问题讨论】:

    标签: c# .net nuget pack downgrade


    【解决方案1】:

    编辑:this 链接确实有助于解决问题

    要了解问题,

    您可以获取一个 .nupkg 文件,将扩展名更改为 .zip,然后打开该文件。里面是一个 .nuspec 文件。

    当我们使用 nuget.exe 打包时,&lt;dependancies /&gt; 标记中不包含任何内容。

    我们意识到 dotnet pack 获取项目引用会将它们添加到内部 .nuspec 文件中,并使用与您正在打包的项目相同的版本号标记它们

    所以我们需要确保在构建一个时,我们会构建依赖项并使用它们。

    <?xml version="1.0" encoding="utf-8"?>
    <package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
      <metadata>
        <id>MyComp.Shared</id>
        <version>2021.7.7.1150-local</version>
        <authors>MyComp</authors>
        <description>MyComp.Shared</description>
        <dependencies>
          <group targetFramework="net5.0">
            <dependency id="MyComp.Enums" version="2021.7.7.1150-local" exclude="Build,Analyzers" />
            <dependency id="FluentValidation" version="10.1.0" exclude="Build,Analyzers" />
            <dependency id="Microsoft.AspNetCore.Identity" version="2.2.0" exclude="Build,Analyzers" />
            <dependency id="Microsoft.AspNetCore.Identity.EntityFrameworkCore" version="5.0.6" exclude="Build,Analyzers" />
            <dependency id="Microsoft.AspNetCore.Mvc.Abstractions" version="2.2.0" exclude="Build,Analyzers" />
            <dependency id="Microsoft.AspNetCore.Mvc.ViewFeatures" version="2.2.0" exclude="Build,Analyzers" />
            <dependency id="Microsoft.Extensions.Identity.Core" version="5.0.6" exclude="Build,Analyzers" />
            <dependency id="Microsoft.Extensions.Identity.Stores" version="5.0.6" exclude="Build,Analyzers" />
            <dependency id="Newtonsoft.Json" version="13.0.1" exclude="Build,Analyzers" />
          </group>
        </dependencies>
      </metadata>
    </package>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-27
      • 2017-08-05
      • 1970-01-01
      • 2023-01-20
      • 2017-10-25
      • 1970-01-01
      • 2022-01-02
      • 2022-11-13
      相关资源
      最近更新 更多