【问题标题】:Errors after upgrading to netcoreapp2.0升级到 netcoreapp2.0 后的错误
【发布时间】:2017-08-21 01:27:16
【问题描述】:

我将一个 ASP.NET Core 解决方案从 netcoreapp1.1 升级到 netcoreapp2.0:

  • 我使用了upgrade guide
  • 安装了新的 SDK
  • 升级到VS2017 15.3.1
  • 删除了所有旧的 nuget 包,并用新的 metapackage 替换它们
  • 清理解决方案,手动删除所有binobj目录,并重建

我尝试了一些我发现的技巧,例如:

  • removed PackageTargetFallback / AssetTargetFallback 这不是必须的
  • ensured 所有 csproj 都没有 RuntimeFrameworkVersion / NetStandardImplicitPackageVersion
  • 在带有{ "sdk": { "version": "2.0.0" } } 的解决方案根目录中尝试使用和不使用global.json
  • 已删除解决方案根目录中的.vs 目录
  • 清除 nuget 包缓存(Tools-Options-NuGet-Clear),并恢复

但是我收到很多这样的错误:

“对象”类型是在未引用的程序集中定义的。您必须添加对程序集 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' 的引用。

我还需要做什么?

【问题讨论】:

  • 我和你有同样的问题,你的文件夹里有 global.json 文件吗?
  • 可能你的服务器或电脑有多个SDK版本,你应该将具体的sdk版本定位到2.0.0并恢复包。
  • @robert No global.json 在我的解决方案中。我没有卸载旧的 SDK,但解决方案针对 netcoreapp2.0(我遵循了升级指南)。如果你以某种方式解决了这个问题,请告诉我。
  • 我通过在我的项目文件夹中添加 global.json 解决了这个问题,就像{ "sdk": { "version": "2.0.0" } }
  • 你有没有参考`NETStandard.Library.NETFramework`?

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


【解决方案1】:

原来我们在解决方案根目录中有一个Directory.Build.props 文件,其中包含解决方案中所有项目的通用 msbuild 内容。

该文件引用了netcoreapp1.1。将其更新为 netcoreapp2.0 后,一切正常。

【讨论】:

    猜你喜欢
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多