【发布时间】:2016-05-14 17:38:51
【问题描述】:
在此代码的 旧 版本运行良好的机器上,将同一项目的新版本从源代码控制中提取出来,运行 nuget 包还原(写入 project.lock.json 文件) ,然后尝试构建这样的输出错误:
Error CS1703
Multiple assemblies with equivalent identity have been imported:
'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\Facades\System.Runtime.dll' and
'C:\Users\[username]\.dnx\packages\System.Runtime\4.0.0\ref\dotnet\System.Runtime.dll'.
Remove one of the duplicate references.
我明白它想告诉我什么,System.Runtime.dll 被导入了两次。我不明白的是如何让 Visual Studio 2015 修复它。
我能在项目中找到的唯一区别在于project.lock.json 文件。将工作项目与非工作项目进行比较显示了这样的结果。工作文件在左边:
所以,据我了解,右侧的错误锁定文件告诉 NuGet 尝试使用新的 .NET Core 内容,而左侧的锁定文件说“使用 .NET Framework 4.5”?
该项目正在使用“ASP.NET 5 RC1 Update 1”。我也对此感到困惑,ASP.NET 5 应该使用新的 .NET Core 东西而不是“Framework 4.5”?如果是这种情况,那么“不正确”的锁定文件对我来说似乎是正确的,因为它的目标是“ref/dotnet”?
将工作中的project.lock.json 文件复制到非工作文件上可以构建项目,但这不是我书中问题的解决方案。导致这种情况发生的这个项目或机器环境是什么?某处的某些东西需要卸载?安装了吗?变了吗?
编辑以包含 project.json:
{
"version": "1.0.0-*",
"description": "Model Class Library",
"tags": [ "" ],
"projectUrl": "",
"licenseUrl": "",
"frameworks": {
"net451": { }
},
"dependencies": {
"EntityFramework.Core": "7.0.0-rc1-final",
"System.ComponentModel.Annotations": "4.0.11-beta-23516"
}
}
【问题讨论】:
标签: c# visual-studio visual-studio-2015 asp.net-core dnx