Rider 打开 UNC 路径的文件 Structure is empty

前几天从 Visual Studio 切换到 Rider,用 Rider 打开项目,发现 Structure 选项卡显示 Structure is empty,关键是没报错,所以左思右想了很久,然后新建一个测试项目,却没有问题啊。

以前可以经常在网上看到“Visual Studio 是宇宙第一 IDE”这样的话,如今我看宇宙第一的是 JetBrians 家的了。就体验上来说,Rider 甩了 VS 好几条街了,而且 Rider 连古老的 Winform 都可以开发。

如今,我也早已使用 macOS 作为我的主力操作系统,但因为要开发一些 Windows 项目不得不使用 Windows,不然我是不会用 Windows 的。我微软啊,你为啥就那么不争气呢!!!再见 VS,

问题

测试项目没有这个问题,我想是不是 IDE 的问题呢?可当前我使用的是最新稳定版啊。我又跑到官网上看看会不会有Beta 版本呢?果然抢先体验版已经发布了:“2022.1 EAP8 内部版本号 221.5080.72已发布: 2022年3月29日”。

我把抢先体验版本安装后 ,再打开有问题的项目,Structure 选项卡显示 Structure is empty,但是有一个 IDE Internal Errors 的提示。点开它的报错如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
com.jetbrains.rdclient.util.BackendException: Unc paths are not supported

--- EXCEPTION #1/2 [NotSupportedException]
Message = “Unc paths are not supported”
ExceptionPath = Root.InnerException
ClassName = System.NotSupportedException
HResult = COR_E_NOTSUPPORTED=80131515
Source = JetBrains.Platform.Core
StackTraceString = “
在 JetBrains.Util.FileSystemUtil.GetPathOnDiskWithCorrectCase[T,TFile,TDir](FileSystemPathBase`3 path)
在 JetBrains.RdBackend.Common.Features.Documents.DocumentHostExtensions.CreateDocumentId(IProjectItem projectFile)
在 JetBrains.Rider.Backend.Features.CodeStructure.RiderCodeStructureHost.<>c__DisplayClass8_0.<.ctor>b__0(Pair`2 pair)
在 JetBrains.DataFlow.Signal`1.NotifySinks(TValue payload)

这个错误提示很明显了,UNC 路径就是网络路径,难道是因为我这个项目是在网络路径的原因吗?

于是我把项目拷贝到本地,果然没有问题了,Structure 显示正常。
所以问题就是因为我的 Rider 是安装在 macOS 中的 PD 中的 Win11 中,而项目是在 macOS 硬盘中,而非 Win11 中,打开项目也是直接在 Finder 中直接打开的,所以 Rider 打开的就是网络路径的文件。在 Rider 中可以看到文件的路径就是以 \\ 开头,这不就是 UNC 路径吗!

解决

勾选 macOS 共享的文件夹,就会在 Windows 的资源管理器的网络位置中显示带有盘符的网络驱动器。

再在该网络驱动器中找到你的项目文件,用 Rider 打开,这样 Structure 才显示正常。

当然你也可以通过直接把项目拷贝到 Windows 本地磁盘中,来解决此问题。但这样的话,如果 Windows 关闭了,那你就没法直接在 macOS 中访问项目文件了。

Rider 打开 UNC 路径的文件 Structure is empty

https://ganzhixiong.com/p/e4f8357e/

Author

干志雄

Posted on

2022-03-29

Updated on

2022-03-29

Licensed under

Comments