c# - 构建错误 - Roslyn MSB3883:意外异常: System.Security.Principal.Windows 的 System.IO.FileNotFoundException
问题描述
在 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 版本中并没有重新出现,但是评论中有很多报告说这个问题直到 15.8.5 仍然存在。该问题可能不是特定于版本的,而是重新安装或升级有时可以修复的一些损坏。
解决方案
从 Visual Studio 版本 15.6.7 升级到最新版本可解决此问题。
推荐阅读
- ios - NSDecimalNumber 值的比例和精度
- javascript - 如何在javascript中获取对象数组中的值
- nginx - Nginx 在用作反向代理时不会扩展超过 750 个连接
- machine-learning - ConvLSTM 的训练和标签数据形状不兼容
- java - 打开下载的(使用 VirtualFile.open())excel 文件时,提示恢复消息
- laravel - Laravel 地平线在新部署后仍然处于非活动状态
- python - 斐波那契与 Python:IndexError:列表索引超出范围
- android - 使用 fastlane 将 Android 应用程序上传到 Fabric 显示此错误“获取远程文件时出错:对等方重置连接 - SSL_connect”
- javascript - 通过 JavaScript 进行 HTML 5 视频流的事件
- php - 如何使用 laravel 将两个对象合并为一个对象