【问题标题】:Build Error - Roslyn MSB3883: Unexpected exception: System.IO.FileNotFoundException for System.Security.Principal.Windows生成错误 - Roslyn MSB3883:意外异常:System.Security.Principal.Windows 的 System.IO.FileNotFoundException
【发布时间】:2018-08-29 02:02:15
【问题描述】:

我在 Visual Studio 2017 构建期间经常收到以下信息:

1>------ Build started: Project: Library, Configuration: Debug Any CPU ------

1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Roslyn\Microsoft.CSharp.Core.targets(84,5): error MSB3883: Unexpected exception: 

1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Roslyn\Microsoft.CSharp.Core.targets(84,5): error : System.IO.FileNotFoundException: Could not load file or assembly 'System.Security.Principal.Windows, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Roslyn\Microsoft.CSharp.Core.targets(84,5): error : File name: 'System.Security.Principal.Windows, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Roslyn\Microsoft.CSharp.Core.targets(84,5): error : at Microsoft.CodeAnalysis.CommandLine.BuildServerConnection.GetPipeNameForPathOpt(String compilerExeDirectory)

1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Roslyn\Microsoft.CSharp.Core.targets(84,5): error : at Microsoft.CodeAnalysis.BuildTasks.ManagedCompiler.ExecuteTool(String pathToTool, String responseFileCommands, String commandLineCommands)

1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Roslyn\Microsoft.CSharp.Core.targets(84,5): error : WRN: Assembly binding logging is turned OFF.

1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Roslyn\Microsoft.CSharp.Core.targets(84,5): error : To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.

1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Roslyn\Microsoft.CSharp.Core.targets(84,5): error : Note: There is some performance penalty associated with assembly bind failure logging.

1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Roslyn\Microsoft.CSharp.Core.targets(84,5): error : To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

似乎没有什么能始终如一地解决它。有时清理和重建工作。有时重新启动 Visual Studio 会起作用。但两者似乎也没有任何效果,因此它似乎与时间或其他一些过程有关。

更新 我刚刚尝试从版本 15.6.7 升级到 15.8.1,所以我们看看能不能解决它。

更新 #2 我在 15.8.1 版本中没有重新出现这个问题,但是在 cmets 中有很多报告说这个问题直到 15.8.5 仍然存在。该问题可能不是特定于版本的,而是重新安装或升级有时可以修复的一些损坏。

【问题讨论】:

  • 为什么这被否决了?我遇到了今天刚开始出现的同样问题。
  • 我不知道 - 在没有评论的情况下投反对票正在成为一种常态。我会说自从迁移到 15.8.1 以来我没有收到错误。如果这可以为​​您解决问题,我可能会将其发布为答案,但现在说我自己还为时过早。
  • 如何将 Visual Studio 更新到最新版本?有人在旧版本15.6.0也有这个问题,在以后的版本上无法重现。 github.com/dotnet/roslyn/issues/23563
  • 我在 15.8.4(截至目前的最新版本)中遇到了这个问题。
  • 嗯,也许我需要取消标记答案。也许这是安装新版本(甚至可能是重新安装)的行为,而不是版本本身。升级后我没有收到错误消息。

标签: c# visual-studio msbuild visual-studio-2017


【解决方案1】:

从 Visual Studio 版本 15.6.7 升级到最新版本可解决此问题。

【讨论】:

  • 只需在此处添加注释即可查看原始问题的 cmets。此答案时的“最新版本”大约是 15.8.1。使用更高版本的人仍在报告问题,这意味着问题发现它重新回到了构建中,或者其他东西解决了问题(即无论版本如何都重新安装)
  • 我将构建服务器留在旧版本的 Visual Studio 2017 中,但今天在构建新项目时遇到了这个问题(尽管与那个非常相似,包括 .NET 目标和 C#版本)它的目标年龄。登录并运行 VS 安装程序以获取修复它的最新更新(无需重新启动)
  • 终于升级到最新版,这似乎也解决了我的问题! :)
【解决方案2】:

我发现只需重新启动我的机器即可解决此问题。我只在项目的初始构建时遇到此问题,在现有解决方案中不会出现此问题。

我只成功地测试了这个理论几次,所以不确定它是否每次都能奏效。但我想我会发布,因为它可能会花一些时间。

这适用于 Visual Studio Enterprise 版本 15.8.6。

【讨论】:

  • 确实有很多时候我可以让它消失。有时清理和重建会起作用。有时删除所有 bin 和 obj 文件夹会起作用。有时重新启动视觉工作室会工作....但没有一致。
  • 使用 15.6.6,我目前的解决方法是删除软件包并进行“恢复”,这只是为我修复了它
  • 修正:我现在不恢复,而是关闭visual studio,稍等片刻。如果我关闭并立即重新打开,似乎错误通常仍然存在,所以我希望它保留在某个后台进程中,不会立即与 GUI 终止。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-02
  • 2018-08-17
  • 1970-01-01
  • 2016-09-11
  • 1970-01-01
相关资源
最近更新 更多