Visual Studio 15.3.1在更新后无法找到核心DLL

时间:2017-08-21 11:17:09

标签: asp.net-core visual-studio-2017

我收到了运行时错误:

InvalidOperationException: Can not find assembly file mscorlib.dll at '...\bin\Debug\net462\refs,...\bin\Debug\net462\'

在我今天早上更新到15.3.1版本并安装.Net Core 2.0 SDK之前,这不是问题。

我的~\.nuget\packages folder中存在DLL。我和#34; 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包的版本,它会回来。

1 个答案:

答案 0 :(得分:3)

好的,这与我的问题略有不同:Visual Studio update 2017 15.3.1 forces ASP.NET Core SDK 2.0, which then doesn't find "reference assemblies"

如果您从https://www.microsoft.com/net/download/core

安装SDK 2.0

然后你可能"可能"能够再次构建和运行项目,但您将回到丢失Microsoft.CSharp.dll / mscorelib.dll错误。

如果您确定netstandard版本的依赖关系是正确的:

<DependsOnNETStandard>netstandard1.5</DependsOnNETStandard>

请参阅此处:https://docs.microsoft.com/en-us/dotnet/standard/net-standard以获取适合您的版本。我的项目使用核心1.1定位完整框架4.6.1,定位netstandard1.6对我有用。

这个问题的最后一部分是在GitHub问题上找到的:https://github.com/dotnet/sdk/issues/1488

将以下内容添加到.csproj文件中的参考文献中:

<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="2.0.0" />

然后,这将构建项目作为1.1项目,但使用2.0 SDK(我可以告诉它,它应该做!)。我现在可以运行项目,更新软件包,并且通常继续我的工作!