已发布版本的路径中存在非法字符,但在调试模式下不存在

Illegal character in path in released version but not in debug mode

TL;DR 为什么在 运行 调试模式下我的应用程序可以工作,但在发布时却不行?

我正在使用 MVVM 加载文件路径来处理一些数据。当我使用调试器版本时,它可以很好地加载、验证和转换,但是当我使用 published/released 版本时,它会失败,所以我无法跟踪它发生的位置。需要注意的是,我们尝试使用长文件路径,因此我们包含了@"\\?\" 附上我们的转换器。

    public static string CheckFilePath(string filePath)
    {
        //Network Location
        if (filePath.StartsWith(@"\"))
        {
            filePath = filePath.TrimStart(@"\".ToCharArray());
            return @"\?\unc\" + filePath;
        }
        //Local location
        if (!filePath.StartsWith(@"\?\") && (!filePath.StartsWith(@"\") || !filePath.StartsWith(@"\?\UNC\")))
        {
            return @"\?\" + filePath;
        }
        return filePath;
    }

我们还使用 4.6.2 并使用它来尝试容纳长文件路径。请注意,这只是我的转换器,用于检查它是否有 @"\\?\" 或 @"\\" 并将其替换为长路径所需的以下内容。这个转换器可能不是问题...任何帮助都会很棒!

好的,谢谢大家的帮助,但我找到了解决方法。事实证明我的发布版本与我的发布版本有点像 jdweng 所说的有问题。如果我只是 运行 发行版中的可执行文件它可以工作,但是当我尝试通过发布安装它时,它不会。