【问题标题】:Assuming assembly reference 'System.Runtime, Version=4.0.20.0'假设程序集引用“System.Runtime,版本=4.0.20.0”
【发布时间】:2017-04-16 15:00:38
【问题描述】:

我的所有代码中都有以下警告:

Warning in Visual studio 2015 community edition

这是我的 project.json:

{
  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0",
      "type": "build"
    },
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Mvc": "1.0.0",
    "Microsoft.AspNetCore.Razor.Tools": {
    "version": "1.0.0-preview2-final",
    "type": "build"
    },
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
    "Microsoft.AspNetCore.StaticFiles": "1.0.0",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0",
    "Microsoft.Extensions.Logging": "1.0.0",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.Extensions.Logging.Debug": "1.0.0",
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
    "Microsoft.EntityFrameworkCore": "1.0.1",
    "System.Runtime": "4.1.0"
  },
  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
      "dotnet5.6",
      "portable-net45+win8"
      ]
    }
  },
  "scripts": {
    "prepublish": [ "npm install", "bower install", "gulp clean", "gulp    deploy-node-libraries", "gulp sass", "gulp min" ]
   }
}

如您所见,我包含了 "System.Runtime": "4.1.0" 就像以前版本中建议的依赖项一样,但它不起作用。 我的环境是:Windows 7 Pro - Service pack 1 - Core I7, Visual Studio 2015 社区版 - Asp.Net Core Project Template

该项目实际上可以编译,但我从 EntityFramework 核心调用和分类的所有行都带有下划线,并且 IISExpress 无法为该页面提供服务。

【问题讨论】:

  • 您可以尝试添加runtimes 设置并指定您要使用的运行时吗?
  • 我没有时间比较,我稍后会做,但是当您使用带有身份验证的模板时,它会创建对 Entityframework 的所有引用,所有这些错误都会消失......但是如果您使用模板而不身份验证通过 MSDN 中描述的步骤来包含实体框架,错误再次出现!

标签: visual-studio-2015 entity-framework-core asp.net-core-1.0


【解决方案1】:

我遇到了同样的问题,这是我的解决方法:

尝试运行:

nuget.exe locals all -clear

在 nuget cli 中清除本地缓存。

然后在 cli 中输入:

dotnet restore

然后在项目json中添加你的运行时并去掉"type": "build" 在:

"Microsoft.NETCore.App": {
  "version": "1.0.0",
  "type": "build" <= remove that line
},

我也将版本设置为 1.0.1。 我也安装了 SDK 的 1.0.0-preview2-003131 并相应地设置了我的 global.json 文件:

"sdk": {
    "version": "1.0.0-preview2-003131"
}

在我的 3 个项目的每个 project.json 中,我都有

  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "version": "1.0.1"
        }
      }
    }
  },
  "runtimes": {
    "win10-x64": {}
  }

而我的“Microsoft.AspNetCore.Server.Kestrel”版本是“1.0.1”,“Microsoft.AspNetCore.Mvc”(1.0.1)也是如此

如果仍然不起作用,请尝试重新安装 latest SDK (1.0.0-preview2-003131) 并检查您是否拥有:

  • Visual Studio 2015 更新 3 .NET Core 1.0.1
  • VS 2015 工具预览 2

更多更新信息请见here

希望这会有所帮助。

【讨论】:

  • global.json 对我来说是重要的部分(我正在使用 VS Code,我正在 netcoreapp1.1 上运行 ASP.NET Core 1.1 应用程序)。
  • dotnet restore 对我不起作用!即使在管理员模式下,它也无法访问我的Windows\System 文件夹深处的某个目录,但它失败了。编译产生了一个包含超过 7000 个错误的应用程序,而以前这些错误是不存在的。但是,我保持理智,重新访问了.NET Core Download Page 并重新安装。成功!没有错误,没有“假设...”警告。
  • 自从那篇帖子以来发生了很多事情,dotnet 1.1.0 现在已经发布,正如一些人建议的那样,如果您仍在 1.0 中,您应该简单地尝试重新安装所有内容。 1.1.0 版还要求您安装新的运行时。转到 .NET Core 下载页面并转到当前选项卡以下载最新版本。
猜你喜欢
  • 2019-04-23
  • 1970-01-01
  • 2015-08-20
  • 2020-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-30
  • 2012-08-20
相关资源
最近更新 更多