TL; DR为什么在运行调试模式时,我的应用程序可以正常工作,但在发布时却没有?
我正在使用MVVM加载文件路径来处理一些数据。当我使用调试器版本时,它会加载,验证并转换为正常,但是当我使用已发布/已发布的版本时,它会失败,因此我无法跟踪它发生的位置。需要注意的是,我们尝试使用长文件路径,因此我们将@" \\?\" 附件是我们的转换器。
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并使用它来尝试容纳长文件路径。请注意,这只是我的转换器,检查它是否有@" \\?\"或者@" \\"并将其替换为长路径所需的以下内容。这个转换器可能不是问题......任何帮助都会很棒!
答案 0 :(得分:0)
好的,大家都感谢您的帮助,但我找到了解决方法。事实证明,我发布的版本与我的发布版本有点不一样,就像jdweng所说的那样。如果我只是从发布版本运行可执行文件它可以工作,但当我尝试通过发布安装它时,它不会。