【发布时间】:2017-08-21 01:27:16
【问题描述】:
我将一个 ASP.NET Core 解决方案从 netcoreapp1.1 升级到 netcoreapp2.0:
- 我使用了upgrade guide
- 安装了新的 SDK
- 升级到VS2017 15.3.1
- 删除了所有旧的 nuget 包,并用新的 metapackage 替换它们
- 清理解决方案,手动删除所有
bin和obj目录,并重建
我尝试了一些我发现的技巧,例如:
-
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