【发布时间】:2017-08-21 11:17:09
【问题描述】:
我收到运行时错误:
InvalidOperationException: Can not find assembly file mscorlib.dll at '...\bin\Debug\net462\refs,...\bin\Debug\net462\'
直到我今天早上更新到 15.3.1 版本并安装了 .Net Core 2.0 SDK 之前,这一直不是问题。
DLL 存在于我的~\.nuget\packages folder 中。在将“Microsoft.Csharp.dll”程序集复制并粘贴到指定文件夹之前,我遇到了同样的问题。
我尝试通过 global.json 文件指定使用 .Net Core 1.1.0,但随后出现构建错误:
此项目使用的 Microsoft.NET.Sdk 版本不足以支持对面向 .NET Standard 1.5 或更高版本的库的引用。请安装 .NET Core SDK 2.0 或更高版本。
如果我清理解决方案然后恢复 Nuget 包通过命令行 - 而不是通过 GUI,此错误就会消失。但是,如果我更改 nuget 包的版本,它会回来。
【问题讨论】:
-
刚刚完成更新。尽可能以最佳时机阅读本文。
-
好的,我似乎已经解决了这个问题,方法是对所有 bin 和 obj 目录进行核对,恢复 NuGet 包并重建。这不是一个真正的答案...
-
另外,我很抱歉提出显而易见的建议,但您是否尝试再次删除和添加程序集?此外,在引发错误的文件中写入“使用”语句以更新智能感知,然后在不需要时将其删除。
-
@Tiramonium 是的,删除 obj 和 bin 文件夹并进行 nuget 还原至少可以使其运行。但是,一旦我更改了 nuget 包的版本,它就会再次中断。 (令人讨厌的是,我今天打算测试一个新版本的内部 nuget 包......)
-
但据我所知,当您更改参考或包版本时,确实建议进行完全重新编译。您无需进入项目文件夹并手动删除文件,“清洁解决方案”会为您完成。
标签: asp.net-core visual-studio-2017