使用Microsoft.NETCore.App版本2.1.0还原了该项目,但是使用当前设置,将使用版本2.1.0-rtm-26515-03代替

时间:2018-08-01 20:58:43

标签: c# asp.net-core visual-studio-2017 nuget

目前,我有一个使用Web API和Net Core 2.0的C#微服务

在nutget软件包中,我已经找到了2.1版的net core,并且我决定安装它以更新我的应用程序。我更改了目标,如下所示

enter image description here

但是当我尝试编译时会生成此错误

enter image description here

使用Microsoft.NETCore.App版本2.1.0恢复了该项目,但在当前设置下,将使用版本2.1.0-rtm-26515-03代替。要解决此问题,请确保将相同的设置用于还原以及后续操作(例如构建或发布)。通常,如果在生成或发布过程中设置了RuntimeIdentifier属性,但在还原过程中没有设置RuntimeIdentifier属性,则可能会发生此问题。

我的依存关系依然如此

enter image description here

7 个答案:

答案 0 :(得分:63)

  

使用Microsoft.NETCore.App版本2.1.0恢复了该项目,但在当前设置下,将使用版本2.1.0-rtm-26515-03代替

此刻是known issue。要解决此问题,您可以尝试以下解决方法:

  • TargetLatestRuntimePatch文件中添加.csproj属性:

    <PropertyGroup>
      <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
    </PropertyGroup>
    

  • RuntimeFrameworkVersion中设置RuntimeIdentifier.csproj 文件:

     <PropertyGroup>
       <RuntimeFrameworkVersion>2.1.1</RuntimeFrameworkVersion>
       <PlatformTarget>AnyCPU</PlatformTarget>
       <RuntimeIdentifier>win-x64</RuntimeIdentifier>
     </PropertyGroup>
    

如果上述解决方法不适合您,请在investigation issue上查看更多解决方法。

有关更多信息,请参见Self-contained deployment runtime roll forward

答案 1 :(得分:5)

我想发布一个ASP.NET Core 2.1控制台应用程序,但遇到有关碰撞版本2.1.0和2.1.6的错误。

由于我的解决方案中有很多项目(并且VS没有提示我哪些项目存在问题,所以我创建了一个文件Directory.Build.props并包含以下内容,并将其放置在我的{{ 1}}文件为

.sln

这里重要的是<Project> <PropertyGroup> <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch> <GenerateFullPaths>true</GenerateFullPaths> <LangVersion>latest</LangVersion> </PropertyGroup> </Project> 条目。

这样,所有项目都使用相同的设置,而我不必手动进行同步。

Directory.Build.props的文档在此处https://docs.microsoft.com/en-us/visualstudio/msbuild/customize-your-build?view=vs-2017

答案 2 :(得分:3)

我已经解决了以下问题:

首先,将以下代码添加到.csproj文件中

<PropertyGroup>
   <RuntimeFrameworkVersion>2.1.1</RuntimeFrameworkVersion>
   <PlatformTarget>AnyCPU</PlatformTarget>
   <RuntimeIdentifier>win-x64</RuntimeIdentifier>
</PropertyGroup>

接下来,检查Microsoft.AspNetCore.App版本是否为2.1.1。如果没有,请安装此版本。

最后,使用2.1.1版本还原您的软件包。要从程序包管理器控制台恢复运行以下代码

Install-Package Microsoft.NETCore.App -Version 2.1.1

答案 3 :(得分:2)

正如@Leo Liu-MSFT所建议的那样,我必须在.csproj文件中设置RuntimeFrameworkVersionRuntimeIdentifier

 <PropertyGroup>
   <RuntimeFrameworkVersion>2.1.1</RuntimeFrameworkVersion>
   <PlatformTarget>AnyCPU</PlatformTarget>
   <RuntimeIdentifier>win-x64</RuntimeIdentifier>
 </PropertyGroup>

但是随后重要,我不得不恢复该解决方案的软件包。

答案 4 :(得分:0)

在将Visual Studio升级到版本16.4.0之后,今天我分别使用版本2.2.7和“但当前设置为2.2.8 ...等。” 来获得此功能。另外,Nuget PackageManager之后会崩溃

  

该合成产生了多个合成错误...   (这里有很多疯狂的东西)

最终通过擦除(即删除其中的所有文件)C:\Users\my.username\AppData\Local\Microsoft\VisualStudio\16.0_79dcc3fa\ComponentModelCache

解决了该问题

答案 5 :(得分:0)

我分别构建了项目,发现了一个丢失的参考,并且似乎可以解决这个问题-谢谢低质量的错误消息。

答案 6 :(得分:0)

我的情况。 Visual Studio 在 AppData\Local\Temp 中创建了一个 *.tmp 文件。删除所有 *.tmp 文件后,发布工作正常。