关于 stackoverflow 有几个相关的问题,但要么我的情况不同,要么我太笨,无法将这些与情况联系起来。我希望有人可以帮助我解决这个问题。此外,我什至不是 .NET 开发人员,因此对于任何错误的术语使用,我提前道歉。
我的场景如下: 用于部署我们的 .net 应用程序(One Click?)的工具将其放在全名超过 300 个字符的目录中。该应用程序使用第三方组件——我们称之为 dbstore——处理驻留在应用程序部署目录中的指定文件。
到目前为止,我们正在使用Assembly.GetExecutingAssembly().GetName().CodeBase
构建要传递给 dbstore 的文件的完全限定名。但是 dbstore 使用旧式 API 并在尝试打开文件时失败。
由于 dbstore 预计不会很快更改,因此建议将应用程序 chdir 到部署目录并将当前目录中的相对路径名传递给它。这也是C# 代码中接受的响应 PathTooLongException 中描述的方法
但是我发现Directory.SetCurrentDirectory
也会抛出PathTooLongException
. 即使我使用 UNC 路径名(例如以\\?\0000000000000\...
我在做一些根本错误的事情吗?还有其他功能可以使用吗?
编辑:似乎没有办法实现我正在寻找的东西。据我所知,没有办法将当前目录设置为长路径。