升级到netcoreapp2.0后报错
Errors after upgrading to netcoreapp2.0
我将 ASP.NET 核心解决方案从 netcoreapp1.1 升级到 netcoreapp2.0:
- 我用了upgrade guide
- 安装了新的 SDK
- 升级到 VS2017 15.3.1
- 删除了所有旧的 nuget 包,并用新的 metapackage
替换它们
- 清理解决方案,手动删除所有
bin
和 obj
目录,然后重建
我尝试了一些我发现的技巧,例如:
PackageTargetFallback
/ AssetTargetFallback
不需要
- ensured 所有 csproj 都没有
RuntimeFrameworkVersion
/ NetStandardImplicitPackageVersion
- 在
{ "sdk": { "version": "2.0.0" } }
的解决方案根目录中尝试使用和不使用 global.json
- 删除了解决方案根目录中的
.vs
目录
- 已清除 nuget 包缓存(工具-选项-NuGet-清除),并恢复
但是我遇到了很多这样的错误:
The type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
我还需要做什么?
原来我们在解决方案根目录中有一个 Directory.Build.props
文件,其中包含解决方案中所有项目的通用 msbuild 内容。
该文件引用了 netcoreapp1.1
。一旦我将其更新为 netcoreapp2.0
,一切正常。
我将 ASP.NET 核心解决方案从 netcoreapp1.1 升级到 netcoreapp2.0:
- 我用了upgrade guide
- 安装了新的 SDK
- 升级到 VS2017 15.3.1
- 删除了所有旧的 nuget 包,并用新的 metapackage 替换它们
- 清理解决方案,手动删除所有
bin
和obj
目录,然后重建
我尝试了一些我发现的技巧,例如:
PackageTargetFallback
/AssetTargetFallback
不需要- ensured 所有 csproj 都没有
RuntimeFrameworkVersion
/NetStandardImplicitPackageVersion
- 在
{ "sdk": { "version": "2.0.0" } }
的解决方案根目录中尝试使用和不使用 - 删除了解决方案根目录中的
.vs
目录 - 已清除 nuget 包缓存(工具-选项-NuGet-清除),并恢复
global.json
但是我遇到了很多这样的错误:
The type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
我还需要做什么?
原来我们在解决方案根目录中有一个 Directory.Build.props
文件,其中包含解决方案中所有项目的通用 msbuild 内容。
该文件引用了 netcoreapp1.1
。一旦我将其更新为 netcoreapp2.0
,一切正常。