【问题标题】:NETSDK1061: The project was restored using Microsoft.AspNetCore.All version 2.0.5, but with current settings, version 2.0.4 would be used insteadNETSDK1061:使用 Microsoft.AspNetCore.All 版本 2.0.5 恢复项目,但使用当前设置,将使用 2.0.4 版本
【发布时间】:2019-04-27 00:18:56
【问题描述】:

在尝试通过 Visual Studio 2019 中的 nuget 管理器更新某些包后,我正在尝试构建解决方案,结果出现此错误:

error : NETSDK1061: The project was restored using Microsoft.AspNetCore.All version 2.0.5, but with current settings, version 2.0.4 would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. 

我检查了this answer on SO,但我真的不明白那里给出的解决方案如何帮助我:

您需要设置相同的发布和构建运行时

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <RuntimeFrameworkVersion>2.1.0</RuntimeFrameworkVersion> --> fix publishing issues
    <PlatformTarget>AnyCPU</PlatformTarget> --> fix publishing issues
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Update="Microsoft.NETCore.App" Version="2.1.0" /> --> fix building issues
    <ProjectReference Include="..\PublicSonar.Monitor.Persistent.Json\PublicSonar.Monitor.Persistent.J> son.csproj" />
  </ItemGroup>
</Project>

完整的dotnet build日志:

λ dotnet build
Microsoft (R) Build Engine version 16.0.450+ga8dc7f1d34 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restore completed in 40.89 ms for C:\Users\eperret\Desktop\KYC\KYC.Utils\KYC.Utils.csproj.
  Restore completed in 40.89 ms for C:\Users\eperret\Desktop\KYC\KYC.Core.DAL\KYC.Core.DAL.csproj.
  Restore completed in 80.13 ms for C:\Users\eperret\Desktop\KYC\KYC.Core\KYC.Core.csproj.
C:\Users\eperret\Desktop\KYC\KYC.Core\KYC.Core.csproj : warning NU1603: KYC.Core depends on Microsoft.AspNetCore.All (>= 2.0.4) but Microsoft.AspNetCore.All 2.0.4 was not found. An approximate best match of Microsoft.AspNetCore.All 2.0.5 was resolved.
  Restore completed in 66.57 ms for C:\Users\eperret\Desktop\KYC\KYC.Core\KYC.Core.csproj.
C:\Program Files\dotnet\sdk\2.2.202\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.DefaultItems.targets(153,5): warning NETSDK1071: A PackageReference to 'Microsoft.AspNetCore.All' specified a Version of `2.0.4`. Specifying the version of this package is not recommended. For more information, see https://aka.ms/sdkimplicitrefs [C:\Users\eperret\Desktop\KYC\KYC.Core\KYC.Core.csproj]
C:\Users\eperret\Desktop\KYC\KYC.Core\KYC.Core.csproj : warning NU1603: KYC.Core depends on Microsoft.AspNetCore.All (>= 2.0.4) but Microsoft.AspNetCore.All 2.0.4 was not found. An approximate best match of Microsoft.AspNetCore.All 2.0.5 was resolved.
C:\Users\eperret\Desktop\KYC\KYC.Core\KYC.Core.csproj : error : NETSDK1061: The project was restored using Microsoft.AspNetCore.All version 2.0.5, but with current settings, version 2.0.4 would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection.

Build FAILED.

C:\Users\eperret\Desktop\KYC\KYC.Core\KYC.Core.csproj : warning NU1603: KYC.Core depends on Microsoft.AspNetCore.All (>= 2.0.4) but Microsoft.AspNetCore.All 2.0.4 was not found. An approximate best match of Microsoft.AspNetCore.All 2.0.5 was resolved.
C:\Program Files\dotnet\sdk\2.2.202\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.DefaultItems.targets(153,5): warning NETSDK1071: A PackageReference to 'Microsoft.AspNetCore.All' specified a Version of `2.0.4`. Specifying the version of this package is not recommended. For more information, see https://aka.ms/sdkimplicitrefs [C:\Users\eperret\Desktop\KYC\KYC.Core\KYC.Core.csproj]
C:\Users\eperret\Desktop\KYC\KYC.Core\KYC.Core.csproj : warning NU1603: KYC.Core depends on Microsoft.AspNetCore.All (>= 2.0.4) but Microsoft.AspNetCore.All 2.0.4 was not found. An approximate best match of Microsoft.AspNetCore.All 2.0.5 was resolved.
C:\Users\eperret\Desktop\KYC\KYC.Core\KYC.Core.csproj : error : NETSDK1061: The project was restored using Microsoft.AspNetCore.All version 2.0.5, but with current settings, version 2.0.4 would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection.
    3 Warning(s)
    1 Error(s)

Time Elapsed 00:00:01.52

我的KYC.Core 包含:

  <ItemGroup>
    <PackageReference Include="bootstrap" Version="4.3.1" />
    <PackageReference Include="Bootstrap.Datepicker" Version="1.8.0.1" />
    <PackageReference Include="jQuery" Version="3.3.1" />
    <PackageReference Include="jQuery.UI.Combined" Version="1.12.1" />
    <PackageReference Include="jQuery.Validation" Version="1.17.0" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.4" />
    <PackageReference Include="Microsoft.AspNetCore" Version="2.0.2" />
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.4" />
    <PackageReference Include="Microsoft.AspNetCore.Antiforgery" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Owin" Version="2.2.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.4" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.2.4" />
    <PackageReference Include="Microsoft.Extensions.Localization" Version="2.1.1" />
    <PackageReference Include="Microsoft.jQuery.Unobtrusive.Ajax" Version="3.2.5" />
    <PackageReference Include="Microsoft.jQuery.Unobtrusive.Validation" Version="3.2.11" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.3" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Utils" Version="2.0.3" />
    <PackageReference Include="RazorEngine.Core.NetCore" Version="4.5.0-rc1" />
    <PackageReference Include="RestSharp" Version="106.6.9" />
    <PackageReference Include="System.Configuration.ConfigurationManager" Version="4.5.0" />
    <PackageReference Include="Serilog.AspNetCore" Version="2.1.1" />
    <PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
    <PackageReference Include="Serilog.Sinks.ElasticSearch" Version="7.1.0" />
  </ItemGroup>

[编辑]

我试图删除&lt;PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.4" /&gt;的版本,但并没有真正帮助:

λ dotnet build
Microsoft (R) Build Engine version 16.0.450+ga8dc7f1d34 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restore completed in 39.63 ms for C:\Users\eperret\Desktop\KYC\KYC.Core.DAL\KYC.Core.DAL.csproj.
  Restore completed in 37.36 ms for C:\Users\eperret\Desktop\KYC\KYC.Utils\KYC.Utils.csproj.
  Restore completed in 73.48 ms for C:\Users\eperret\Desktop\KYC\KYC.Core\KYC.Core.csproj.
C:\Users\eperret\Desktop\KYC\KYC.Core\KYC.Core.csproj : error NU1107: Version conflict detected for Microsoft.CodeAnalysis.CSharp. Install/reference Microsoft.CodeAnalysis.CSharp 2.8.0 directly to project KYC.Core to resolve this issue.
C:\Users\eperret\Desktop\KYC\KYC.Core\KYC.Core.csproj : error NU1107:  KYC.Core -> Microsoft.AspNetCore.Mvc 2.2.0 -> Microsoft.AspNetCore.Mvc.Razor.Extensions 2.2.0 -> Microsoft.CodeAnalysis.Razor 2.2.0 -> Microsoft.CodeAnalysis.CSharp (>= 2.8.0)
C:\Users\eperret\Desktop\KYC\KYC.Core\KYC.Core.csproj : error NU1107:  KYC.Core -> RazorEngine.Core.NetCore 4.5.0-rc1 -> Microsoft.CodeAnalysis 2.3.2 -> Microsoft.CodeAnalysis.CSharp.Workspaces 2.3.2 -> Microsoft.CodeAnalysis.CSharp (= 2.3.2).
  Restore failed in 1.19 sec for C:\Users\eperret\Desktop\KYC\KYC.Core\KYC.Core.csproj.

Build FAILED.

C:\Users\eperret\Desktop\KYC\KYC.Core\KYC.Core.csproj : error NU1107: Version conflict detected for Microsoft.CodeAnalysis.CSharp. Install/reference Microsoft.CodeAnalysis.CSharp 2.8.0 directly to project KYC.Core to resolve this issue.
C:\Users\eperret\Desktop\KYC\KYC.Core\KYC.Core.csproj : error NU1107:  KYC.Core -> Microsoft.AspNetCore.Mvc 2.2.0 -> Microsoft.AspNetCore.Mvc.Razor.Extensions 2.2.0 -> Microsoft.CodeAnalysis.Razor 2.2.0 -> Microsoft.CodeAnalysis.CSharp (>= 2.8.0)
C:\Users\eperret\Desktop\KYC\KYC.Core\KYC.Core.csproj : error NU1107:  KYC.Core -> RazorEngine.Core.NetCore 4.5.0-rc1 -> Microsoft.CodeAnalysis 2.3.2 -> Microsoft.CodeAnalysis.CSharp.Workspaces 2.3.2 -> Microsoft.CodeAnalysis.CSharp (= 2.3.2).
    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:02.41

【问题讨论】:

  • 尝试删除版本
  • @Darkonekt 我试过了,还是不行(我也更新了我的帖子)
  • 我看到另一个区别.....在第一个文件中您引用 Microsoft.NETCore.App 但第二个文件 Microsoft.NETCore.All ......它们不一样。那你用的是哪一个?

标签: c# .net-core assemblies


【解决方案1】:

好吧,我的诀窍是卸载几乎所有东西,直到解决方案不再编译,因为我怀疑一些包完全没用(我继承了一些遗留问题)。然后我只是重新安装了构建当时有效的解决方案所需的软件包。

  <ItemGroup>
    <PackageReference Include="bootstrap" Version="4.3.1" />
    <PackageReference Include="Bootstrap.Datepicker" Version="1.8.0.1" />
    <PackageReference Include="jQuery" Version="3.3.1" />
    <PackageReference Include="jQuery.UI.Combined" Version="1.12.1" />
    <PackageReference Include="jQuery.Validation" Version="1.17.0" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.All" />
    <PackageReference Include="Microsoft.AspNetCore.Antiforgery" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Owin" Version="2.2.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.4" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.2.4" />
    <PackageReference Include="Microsoft.jQuery.Unobtrusive.Ajax" Version="3.2.6" />
    <PackageReference Include="Microsoft.jQuery.Unobtrusive.Validation" Version="3.2.11" />
    <PackageReference Include="RazorEngine.NetCore" Version="2.2.2" />
    <PackageReference Include="RestSharp" Version="106.6.9" />
    <PackageReference Include="System.Configuration.ConfigurationManager" Version="4.5.0" />
    <PackageReference Include="Serilog.AspNetCore" Version="2.1.1" />
    <PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
    <PackageReference Include="Serilog.Sinks.ElasticSearch" Version="7.1.0" />
  </ItemGroup>

问题在于那些包

  • Microsoft.VisualStudio.Web.CodeGeneration.Design:不需要
  • Microsoft.VisualStudio.Web.CodeGeneration.Utils:不需要
  • RazorEngine.Core.NetCore: 并改用RazorEngine.NetCore
  • Microsoft.AspNetCore.All: 不需要注明版本,使用最新的
  • Microsoft.AspNetCore:升级到2.2.0

【讨论】:

    猜你喜欢
    • 2019-05-12
    • 2019-01-09
    • 2019-02-07
    • 1970-01-01
    • 2011-07-27
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多