Windows xp机器上的Windows API代码包功能

时间:2015-01-22 15:48:15

标签: c# windows-xp windows-applications windows-api-code-pack

我有一个Windows应用程序,需要在Windows的所有平台上工作。我最近安装了Windows API代码包,并用" CommonOpenFileBrowser"替换了一个文件夹浏览器。这很棒,直到我尝试在Windows XP机器上运行我的程序,我得到了例外:

PlatformNotSupportedException,CommonOpenFileDialog需要vista或更高版本。

我想继续使用CommonOpenFileDialog for vista及更高版本,但是如果它在运行时检测到Windows XP操作系统,是否可以恢复到旧文件夹浏览器?

更多想法:

我可以使用以下方法检测我的操作系统:

  

//如果是Windows Vista或更高版本   if(Environment.OSVersion.Version.Major> = 6)

但是,即使在显示CommonOpenFileDialog之前,启动时也会发生异常。我听说过有关动态加载代码的事情,但我对这方面的经验很少。

1 个答案:

答案 0 :(得分:0)

事实证明我一直都有解决方案。我所要做的就是:

 if (Environment.OSVersion.Version.Major >= 6)
 {
     var openCommonDialog = new CommonOpenFileDialog();
 }
 else 
 {
     var openFileDialog = new FolderBrowserDialog();
 }

我在启动时崩溃的原因是在Designer.cs文件中实例化了CommonOpenFileDialog。删除后,我的修复工作正常。