【问题标题】:Upgrading from .net core 1.1 to .net core 2.0从 .net core 1.1 升级到 .net core 2.0
【发布时间】:2018-08-03 17:21:55
【问题描述】:

我正在将我们现有的平台从 .Net Core 1.1 升级到 .Net Core 2.0。 我升级了框架和与之关联的 Nuget 包。

我的控制器不再继承自 Controller 类。

但是,我的项目不再构建并抛出 cs0012 消息: 您必须添加对程序集 'netstandard, Version=2.0.0.0, Culture=neutral, publicKeyToken = cc7b13ffcd2ddd51" 的引用。

这是我的 cs.project

<PropertyGroup>   
<AssemblyTitle>Demand1</AssemblyTitle>
<TargetFramework>netcoreapp2.0</TargetFramework>
<DebugType>portable</DebugType>
<PreserveCompilationContext>true</PreserveCompilationContext>
<AssemblyName>OnDemand</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>OnDemand</PackageId>
<RuntimeFrameworkVersion>1.1.1</RuntimeFrameworkVersion>

  <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="2.0.1" />
<PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="2.0.1" />
<PackageReference Include="Microsoft.AspNetCore.Hosting" Version="2.0.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.2" />
<PackageReference Include="Microsoft.AspNetCore.Rewrite" Version="2.0.1" />
<PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="2.0.1" />
<PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="2.0.1" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.1" />
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="2.0.0" />
<PackageReference Include="Moq" Version="4.7.10" />
<PackageReference Include="OctoPack" Version="3.6.1" />
<PackageReference Include="Serilog.Extensions.Logging.File" Version="1.0.0" />
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="2.0.0" />
<PackageReference Include="StackifyMiddleware" Version="2.0.3" />

我遵循了这里的建议: Solution 1Another One

  • 将 Include="netstandard" 引用为 ItemGroup
  • PackageReference 更新="Microsoft.NETCore.App" 版本="2.0.0"
  • 删除了 RuntimeFrameworkVersion
  • 将我的 vs 社区更新到 15.5.7

在花了一整天的时间尝试解决它之后,谁能指出我正确的方向。 我还认为 .net core 2 实现了 .net 标准 2.0.0。如果我在这里完全错了,请纠正我。

【问题讨论】:

  • Serilog.Extensions.Logging.File 1.0.0 .. Targetts .NET Standard 1.3,尝试定位 2.0.0-dev-00023
  • 微软有一个官方指南,docs.microsoft.com/en-us/aspnet/core/migration/1x-to-2x,你似乎还没有阅读。
  • @LexLi 我忘了提到我已经阅读了迁移到 .net core 2 的官方文档。我什至尝试使用 Microsoft.AspNetCore.All 包而不是所有其他包。
  • @DOMZE 这是我唯一没有更新的。将尝试按照您的建议定位它并查看
  • 您升级了 Visual Studio 吗?当你更新 VS 时,.Net Core SDK 会相应更新(会安装 .Net Core 2.0)

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


【解决方案1】:

你需要删除

<RuntimeFrameworkVersion>1.1.1</RuntimeFrameworkVersion>

来自您的 .csproj 文件。这会将 runtimeconfig.json 文件中的目标版本设置为使用 .NET Core 1.1.1 而不是 .NET Core 2.0。

参考:https://stackoverflow.com/a/46778275

其他检查事项

  1. 确保您已安装 .NET Core 2.0 SDK
  2. 确保您的解决方案中没有任何覆盖 SDK 版本的 global.json files

【讨论】:

    猜你喜欢
    • 2017-07-05
    • 1970-01-01
    • 1970-01-01
    • 2022-09-30
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 2015-01-08
    • 2018-02-13
    相关资源
    最近更新 更多