我有一个带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)\参考程序集\ 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" ]
}
}
由于
答案 0 :(得分:2)
你会得到相互矛盾的参考,因为这是一个测试版,混合两个不同的版本会导致参考冲突。您应该使用所有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",
答案 1 :(得分:1)
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
文件夹。我还不完全确定这些生成器是如何工作的,但这只是核心目标框架的绰号。