【问题标题】:Multiple assemblies with equivalent identity - System.Runtime.dll具有等效标识的多个程序集 - System.Runtime.dll
【发布时间】:2016-07-01 21:23:42
【问题描述】:

我有一个带有 beta-8 的 MVC6 项目,当我添加 System.Security.Claims nuget 包时,我会收到以下编译错误:

错误 CS1703 已导入具有等效标识的多个程序集:'C:\Users\username.dnx\packages\System.Runtime\4.0.20\ref\dotnet\System.Runtime.dll' 和 'C:\Program文件 (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.1\Facades\System.Runtime.dll'。删除重复引用之一。

任何有关解决此问题的指导将不胜感激!

我能够从一个简单的新项目中复制,Beta8Class 只是解决方案中的一个通用类库,这里是 project.json:

{
  "webroot": "wwwroot",
  "version": "1.0.0-*",

  "dependencies": {
    "Beta8Class": "1.0.0-*",
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta8",
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-beta8",
    "Microsoft.AspNet.Mvc": "6.0.0-beta8",
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta8",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-beta8",
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta8",
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-beta8",
    "Microsoft.Framework.Configuration.Json": "1.0.0-beta8",
    "Microsoft.Framework.Logging": "1.0.0-beta8",
    "Microsoft.Framework.Logging.Console": "1.0.0-beta8",
    "Microsoft.Framework.Logging.Debug": "1.0.0-beta8",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta8",
    "System.Security.Claims": "4.0.1-beta-23409"
  },

  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel"
  },

  "frameworks": {
    "dnx451": { },
    "dnxcore50": { }
  },

  "exclude": [
    "wwwroot",
    "node_modules"
  ],
  "publishExclude": [
    "**.user",
    "**.vspscc"
  ],
  "scripts": {
    "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ]
  }
}

谢谢

【问题讨论】:

  • 所以,看起来我不需要 Nuget 包来访问 System.Security.Claims。它实际上是 mscorlib 的一部分。

标签: asp.net-core-mvc dnx


【解决方案1】:

您会遇到引用冲突,因为这是一个测试版,混合两个不同的版本会导致引用冲突。您应该使用所有 beta8 版本。

如果你想要一些安全的东西,你可以使用这些包

    "Microsoft.AspNet.Authentication.Cookies": "1.0.0-beta8",
    "Microsoft.AspNet.Authentication.Facebook": "1.0.0-beta8",
    "Microsoft.AspNet.Authentication.Google": "1.0.0-beta8",
    "Microsoft.AspNet.Authentication.MicrosoftAccount": "1.0.0-beta8",
    "Microsoft.AspNet.Authentication.Twitter": "1.0.0-beta8",

【讨论】:

    【解决方案2】:

    System.Security.Clamis 包版本 4.0.1-beta-23409 仅支持 dnxcore5。尝试删除 dnx451 目标框架。

    您可以在 NuGet 库上确认这一点:

    https://www.nuget.org/packages/System.Security.Claims/4.0.1-beta-23409

    另一个线索是您的错误消息说它搜索dotnet 文件夹。我还不能完全确定这些生成器是如何工作的,但这只是核心目标框架的绰号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-01
      • 2015-12-18
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      • 1970-01-01
      相关资源
      最近更新 更多