簡體   English   中英

do.net Pack vs Nuget.exe Pack,版本降級報錯

[英]Dotnet Pack vs Nuget.exe Pack, version downgrade error

我們已經從使用 nuget.exe 包更改為 do.net 包(以擺脫對 .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

但是,當我們使用這個 package 時,我們現在會遇到版本降級錯誤。 使用第一個命令打包 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 package 項目

<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>

編輯:鏈接確實有助於解決問題

要理解這個問題,

您可以獲取一個.nupkg 文件,將擴展名更改為.zip,然后打開該文件。 里面是一個.nuspec 文件。

當我們打包 nuget.exe 時, <dependancies />標簽中沒有包含任何內容。

我們意識到do.net pack將項目引用添加到 internal.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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM