0

我有一个可以在任何一个操作系统(win7(x86)或win xp)中运行的应用程序。

我的项目是在 Visual Studio 2010 中设计的,我使用的是 .Net 4.0。

早些时候,项目在属性中的“工作目录”是为 win 7 指定的,但是当我构建我的项目时,它说无法找到工作目录(C:\Program Files(x86)\app

我现在将工作目录更改为C:\Program Files\app. 我的应用程序充当 MS excel 2003 的插件。现在我可以运行它了。

那么如何让我的应用程序在 win xp 和 win 7 中运行呢?

我正在使用 WinForms .net 4.0 c#。

 private void MyMenuItem_Click(object sender, EventArgs e)
    {
        MyMenuItem.Enabled = false;   
        string installPath;
        string helpFileName;
        string appName;


installPath =   Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
        appName = "\\MyApp\\";   



        if (System.IO.File.Exists(installPath + appName+ helpFileName))
        {


System.Windows.Forms.Help.ShowHelp(new System.Windows.Forms.Control()                              installPath + appName + helpFileName, 
                   System.Windows.Forms.HelpNavigator.TableOfContents);
        }



    }
4

1 回答 1

2

看看 Environment.SpecialFolder 枚举

在 System.IO 中有一个名为 Path 的静态类,上面有一些非常好的东西

有点挣扎,因为我看不到您从哪里获得 helpFileName ...

private void MyMenuItem_Click(object sender, EventArgs e)
{
   MyMenuItem.Enabled = false;   
   String helpFileName = "IDoNotKnow.ext";
   string fileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles),Path.Combine("MyApp",helpfileName));
   if (System.IO.File.Exists(fileName))
   {
      System.Windows.Forms.Help.ShowHelp(new System.Windows.Forms.Control(),fileName,System.Windows.Forms.HelpNavigator.TableOfContents);
   }
}

Path.Combine 为您做的一件事是您不必担心反斜杠。如果参数中有一个尾随,它会使用它,如果没有,它会弹出它。有时会隐藏很多混乱。

于 2013-01-17T08:46:41.517 回答