我有一个Windows应用程序,需要在Windows的所有平台上工作。我最近安装了Windows API代码包,并用" CommonOpenFileBrowser"替换了一个文件夹浏览器。这很棒,直到我尝试在Windows XP机器上运行我的程序,我得到了例外:
PlatformNotSupportedException,CommonOpenFileDialog需要vista或更高版本。
我想继续使用CommonOpenFileDialog for vista及更高版本,但是如果它在运行时检测到Windows XP操作系统,是否可以恢复到旧文件夹浏览器?
更多想法:
我可以使用以下方法检测我的操作系统:
//如果是Windows Vista或更高版本 if(Environment.OSVersion.Version.Major> = 6)
但是,即使在显示CommonOpenFileDialog之前,启动时也会发生异常。我听说过有关动态加载代码的事情,但我对这方面的经验很少。
答案 0 :(得分:0)
事实证明我一直都有解决方案。我所要做的就是:
if (Environment.OSVersion.Version.Major >= 6)
{
var openCommonDialog = new CommonOpenFileDialog();
}
else
{
var openFileDialog = new FolderBrowserDialog();
}
我在启动时崩溃的原因是在Designer.cs文件中实例化了CommonOpenFileDialog。删除后,我的修复工作正常。