我收到了运行时错误:
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包的版本,它会回来。
答案 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(我可以告诉它,它应该做!)。我现在可以运行项目,更新软件包,并且通常继续我的工作!