【问题标题】:Build error of ASP.NET Core - "...current settings, version 2.1.0-preview3-26411-06 would be used instead"ASP.NET Core 的构建错误 - “...当前设置,将使用 2.1.0-preview3-26411-06 版本”
【发布时间】:2018-05-07 21:10:59
【问题描述】:

我使用dotnet 创建了一个示例项目,但在构建项目时出现以下错误:

错误:项目已使用 Microsoft.NETCore.App 版本 2.1.0-rc1 恢复,但在当前设置下,将使用版本 2.1.0-preview3-26411-06。要解决此问题,请确保将相同的设置用于还原和后续操作(例如构建或发布)。通常,如果在构建或发布期间设置了 RuntimeIdentifier 属性,但在恢复期间没有设置,则通常会出现此问题。

有什么问题?我正在使用Visual Studio 2017 build 15.7.0。

【问题讨论】:

    标签: asp.net-core .net-core


    【解决方案1】:

    我收到了类似的错误消息:

    项目是使用 Microsoft.NETCore.App 2.0.7 版本恢复的,但在当前设置下,将使用 2.0.0 版本。要解决此问题,请确保将相同的设置用于还原和后续操作(例如构建或发布)。通常,如果在构建或发布期间设置了 RuntimeIdentifier 属性,但在恢复期间没有设置,则通常会发生此问题

    我将 RuntimeFrameworkVersion 设置添加到 .csproj 文件中,它为我解决了一个问题:

    <PropertyGroup>
       <TargetFramework>netcoreapp2.0</TargetFramework>
       <RuntimeFrameworkVersion>2.0.7</RuntimeFrameworkVersion><!--here is the fix-->
    </PropertyGroup>
    
    <ItemGroup>
       <PackageReference Update="Microsoft.NETCore.App" Version="2.0.7" />
    </ItemGroup>
    

    【讨论】:

    【解决方案2】:

    Visual Studio 似乎正在使用不同的 .NET Core 版本进行恢复/构建/发布。

    要解决此问题,您可以在 .csproj 文件中添加 TargetLatestRuntimePatch 属性:

    <PropertyGroup>
       <TargetFramework>netcoreapp2.0</TargetFramework>
       <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
    </PropertyGroup>
    

    详情请见this page

    【讨论】:

      【解决方案3】:

      就我而言,在 .csproj 文件中我更改了

      <ItemGroup>
          <PackageReference Update="Microsoft.NETCore.App" Version="2.0.5" />
      </ItemGroup>
      

      到:

      <ItemGroup>
          <PackageReference Update="Microsoft.NETCore.App" Version="2.1.0" />
      </ItemGroup>
      

      它奏效了。

      【讨论】:

        【解决方案4】:

        我已经安装了 .NET SDK 2.2.0,发现这不是正确的版本,正确的版本被重命名为 2.1.300 以与最新版本为 2.1 的 .NET Core 应用程序同步.0.我安装了 2.1.300,一切运行正常。

        【讨论】:

          【解决方案5】:

          仅仅因为您安装了最新的 SDK 并不意味着您安装了最新的运行时。我永远也不会明白。

          运行dotnet --info

          我得到了以下内容(此处仅显示最新安装的版本)。

           .NET Core SDKs installed:
             2.1.300 [C:\Program Files\dotnet\sdk]
          
           .NET Core runtimes installed:d\Microsoft.NETCore.App]
            Microsoft.NETCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
          
          • 所以我安装了2.1.1 runtime,现在dotnet --info 也给了我2.1.1

          • 哦,2.1.3 实际上是 2.1.1,但由于某种我不完全理解或关心的原因,他们不得不增加它。

          • 我重新启动了 Visual Studio,因为它似乎永远无法保持版本同步

          • 我在 .csproj 文件中将以下内容添加到 PropertyGroup(卸载项目 + 编辑)

            netcoreapp2.1 2.1.1

          现在我认为我们不需要再指定这个了,这个 .csproj 文件今天刚刚创建了全新的,它根本没有运行时版本。无论我们应该做什么,这对我都有效。我还发现了这个 massive thread 关于 2.1.1 的版本控制,我略读了一遍,但现在点发布似乎有些复杂,所以也许这个特定版本是必要的。


          因为这个错误,我最终来到了这里:

          错误:项目已使用 Microsoft.NETCore.App 版本恢复 2.1.1,但在当前设置下,将使用 2.1.0 版本。要解决此问题,请确保使用相同的设置 恢复并用于后续操作,例如构建或发布。 通常,如果 RuntimeIdentifier 属性为 在构建或发布期间设置,但不是在恢复期间设置。

          添加 RuntimeFrameworkVersion 是解决此问题的具体方法。

          很遗憾,此错误消息没有任何链接文章,这会很有帮助。

          【讨论】:

            【解决方案6】:

            用途:

            <Project Sdk="Microsoft.NET.Sdk.Web">
            
                <PropertyGroup>
                    <TargetFramework>netcoreapp2.1</TargetFramework>
                    <UserSecretsId>aspnet-...............245435</UserSecretsId>
                    <RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>
                    <RuntimeIdentifier>win10-x64</RuntimeIdentifier>
                </PropertyGroup>
            
                <ItemGroup>
                    <PackageReference Include="Microsoft.AspNetCore.App" />
                    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.1" PrivateAssets="All" />
                </ItemGroup>
                <ItemGroup>
                    <PackageReference Update="Microsoft.NETCore.App" Version="2.1.1" />
                </ItemGroup>
            </Project>
            

            【讨论】:

            • 解释一下。
            【解决方案7】:

            在我的情况下,问题是通过确保我有两个项目得到解决,一个依赖于另一个。

            一个项目在 .csproj 文件中指定了 RuntimeIdentifier,但另一个没有。一旦我确保两者都有匹配的 RuntimeIdentifiers,问题就解决了。

            【讨论】:

              【解决方案8】:

              我得到的具体错误是

              error : NETSDK1061: The project was restored using Microsoft.NETCore.App version 2.0.5, but with current settings, version 2.1.1 would be used instead.

              我有

              <ItemGroup>
                  <PackageReference Update="Microsoft.NETCore.App" Version="2.0.5" />
              </ItemGroup>```
              

              进一步向下文件。一旦我删除它并执行clean,项目就成功构建了。

              【讨论】:

                【解决方案9】:

                我有一个不同的解决方案,适用于 ASP.NET 2.1,因为我在构建和发布过程中都遇到了问题:

                <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.Json.csproj" />
                    </ItemGroup>
                </Project>
                

                【讨论】:

                  【解决方案10】:

                  我也有同样的经历:

                  项目是使用 Microsoft.NETCore.App 2.1.2 版恢复的,但在当前设置下,将使用 2.1.0 版。

                  dotnet publish 命令中删除显式设置的--self-contained false 似乎对我们有用。它默认是一样的,所以为什么会有所不同,我不知道。

                  这是 SDK 版本 2.1.400。

                  【讨论】:

                    猜你喜欢
                    • 2019-01-09
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2018-03-28
                    • 1970-01-01
                    • 1970-01-01
                    • 2019-08-14
                    • 2020-11-01
                    相关资源
                    最近更新 更多