无法加载文件或程序集“Microsoft.CodeAnalysis,版本= 1.3.1.0,文化=中立,PublicKeyToken = 31bf3856ad364e35”或其依赖项之一

昨天晚上发生了一个更新,现在我发现自己无法做一个Ctrl +'。 在VS 2015中的代码build议。出现错误消息说:

无法加载文件或程序集“Microsoft.CodeAnalysis,版本= 1.3.1.0,文化=中立,PublicKeyToken = 31bf3856ad364e35”或其依赖项之一。 该系统找不到指定的文件。

我仍然可以构build和开发,但是如果没有这个特性,这将会非常烦人。 我承认,我越来越软!

任何人有build议修复这个错误?

我有与Visual Studio 2015更新2相同的问题,以解决全球所有解决scheme的问题,更新到Visual Studio 2015更新3 。 这里有一个链接: 从这里下载

正如@CaptainAmerica指出的,解决scheme是从NuGet更新CodeDom程序集。 应该指出如何在Visual Studio中执行此操作。 我在这里find了解决scheme:

https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/

基本上,在Visual Studio菜单中select:

Tools-> Nuget Package Manager -> Package Manager Console

在显示在Visual Studio底部的控制台中运行以下命令:

 Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform 

我发现这个页面,并在页面底部的“与ASP.NET的兼容性”它说,ASP.NET使用nuget包Microsoft.CodeDom.Providers.DotNetCompilerPlatform更新Microsoft.CodeAnalysis程序集。 所以我将DotNetCompilerPlatform包从1.0.0更新到了1.0.3,并且再次运行! 是的,生活又好了!

如果任何选项不起作用,以下是处理这种情况的详细指南….

首先版本是重要的。 注意错误中提到的版本…

 Could not load file or assembly 'Microsoft.CodeAnalysis, version= 1.3.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. 

如果你看到上面的错误,这意味着它无法find版本1.3.1。 现在请创build新的VS项目。 没有偏好,它可以只是简单的控制台应用程序。 现在,一旦项目模板准备就绪,请转到程序包pipe理器,并使用指定的版本运行以下命令…

 Install-Package Microsoft.CodeAnalysis -Version 1.3.1 

这将安装所有包。 让它完成。 一旦完成。 我们根本不需要这个新创build的项目。 你可以完全删除它。 认真! 你可以删除它。 我们这样做是因为我们想要在全局nuget级别安装的软件包。 当你安装一些东西的时候,nuget也会把它存储在你的机器的全局级别。 path将是这样的…

 C:\Users\<<Your Windows User>>\.nuget\packages 

您可以通过以下方式了解您的路线…

 %USERPROFILE%\.nuget\packages 

现在您将在以下文件夹中看到您需要的Microsoft.CodeAnalysis.dll

 C:\Users\<<Your Windows User>>\.nuget\packages\Microsoft.CodeAnalysis.Common\1.3.1\lib\net45 

请注意,上面的path包含版本号(1.3.1)。 如果您的版本不同,请查看该版本文件夹。

现在你已经和你在一起,所有你需要做的就是把这个dll添加到GAC。 为此,您将需要GacUtil.exe

这个文件已经与Visual Studio一起安装了。 你可以在C盘search“GacUtil”。 对我来说,它在下面的path…

 C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools 

现在以pipe理员身份运行命令提示符,并将当前目录导航到包含GacUtil的path。 运行下面的命令在GAC中安装该dll。

 gacutil -i C:\Users\<<You Windows User>>\.nuget\packages\Microsoft.CodeAnalysis.Common\1.3.1\lib\net45\Mi crosoft.CodeAnalysis.dll 

基本上提供了我们全球安装的DLL的path。 它会显示成功安装的消息。

就这样! 现在再次启动你的Visual Studio,你将会修复这个问题。

为了解决所有解决scheme的这个问题,我需要将程序集Microsoft.CodeAnalysis.dll直接安装到GAC – 全局程序集caching中

我从C:/ Users / [user] /。nuget / packages / Microsoft.CodeAnalysis.Common / 1.3.2 / lib / portable-net45 + win8 / Microsoft.CodeAnalysis.dll中得到了文件Microsoft.CodeAnalysis.dll

要将程序集安装到GAC,我使用了https://github.com/LTruijens/powershell-gac中的PowerShell脚本。;

最后,我设法使用PowerShell中的以下命令将程序集安装到GAC:

 Add-GacAssembly [myPath]\Microsoft.CodeAnalysis.dll 

我也面临同样的问题。 我的视觉工作室2015版本是2.0。 我升级到版本3。

问题解决了!

我已经这样解决了这个问题:

更新Visual Studio 2015到更新3

从菜单中selectView => Notifications => Visual Studio Update 3并单击更新button。

我通过更新所有的Nu​​get微软依赖到v2.0.0解决了这个问题。 这是使用VS 2017。我正在使用预览版本。