在此代码的较旧版本工作正常的计算机上,从源代码控制中提取同一项目的新版本,运行nuget package restore(写入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&#34 ;
该项目正在使用" ASP.NET 5 RC1 Update 1"。我也对此感到困惑,ASP.NET 5应该使用新的.NEt核心内容而不是#34; 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"
}
}
答案 0 :(得分:1)
试试这个:
dnvm use 1.0.0-rc1-final
dnu restore
我怀疑工作的project.lock.json文件是针对与1.0.0-rc1-update1不同的运行时版本构建的。