我的 VS2019 解决方案带有一个 WPF 项目,已开始显示一个名为“**”的虚拟文件夹,其中包含以下文件树:
- **
- *
- *.cs
- *.resx
- *.xaml
并且因为这些文件是用非法语法命名的,VS 给出了一个错误:System.ArgumentException: Illegal characters in path
,我的其余目录/文件现在被标记为 Excluded,大概是因为它无法读取这些幻影非法命名的文件。
我正在处理的项目使用 SharpCompress 对 rar、zip 和 7z 文件进行大量文件处理和解压缩,因此我有可能不小心创建了一个空白或“**”目录,这会造成混乱某处,但这仍然很奇怪,因为我什至无法删除这些东西,因为它们已经存在。
这些文件存在于解决方案的根目录中,并且仅存在于 Visual Studio 的解决方案资源管理器窗口中。我在 Windows 文件资源管理器、CMD 或 Powershell 中看不到它们。我在 csproj 中看不到它们……我在任何地方都看不到它们。
我尝试过的修复:
- 重新启动 Visual Studio
- 删除 bin/obj 文件夹
- 删除 csproj.user 文件
- 删除 .vs 文件夹
- 重命名幻影文件(如果我这样做,我会得到第二个幻影文件,其名称是我选择的,并且“**”命名的文件仍然存在)
- 在整个解决方案中搜索“**”(一无所获)
目前我只能推测我的项目是闹鬼的。
路径中非法字符的完整 VS 错误是:
=====================
06/12/2020 23:17:16
Recoverable
System.ArgumentException: Illegal characters in path.
at System.Security.Permissions.FileIOPermission.EmulateFileIOPermissionChecks(String fullPath)
at System.Security.Permissions.FileIOPermission.QuickDemand(FileIOPermissionAccess access, String fullPath, Boolean checkForDuplicates, Boolean needFullPath)
at Microsoft.VisualStudio.PlatformUI.Packages.FileChange.DefaultFileSystem.PathWrapper.GetFullPath(String path)
at Microsoft.VisualStudio.Services.FileChangeService.ValidateAndNormalize(String path, String paramName)
at Microsoft.VisualStudio.Services.FileChangeService.AdviseFileChangeCore(String filename, _VSFILECHANGEFLAGS filter, EventSinkBundle bundle, CancellationToken token)
at Microsoft.VisualStudio.Services.FileChangeService.<>c__DisplayClass89_0.<AdviseFileChangeAsync>b__0(CancellationToken token)
at Microsoft.VisualStudio.Services.FileChangeService.<RunWithTracingAsync>d__125`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.ProjectSystem.VS.Implementation.ProjectEvaluationAdditionalDependentFileWatchingService.<CheckContentIrrelevantFileDependenciesStateAsync>d__22.MoveNext()
===================