【问题标题】:Getting location of setup.exe in custom action在自定义操作中获取 setup.exe 的位置
【发布时间】:2009-04-18 03:41:04
【问题描述】:

C# 2005

我正在使用安装程序类,因为我需要一个将读取 xml 配置文件的自定义操作。

所以当用户双击设置时,在同一个文件夹中会有一个config.xml文件。我想在安装事件中阅读此 config.xml 文件。该文件夹将包含 setup.exe 和 config.xml

但是,它无法找到 config.xml 文件,因为它正在 C:\windows\system32 下寻找它。我通过使用 applicationstartup.path 发现了这一点。但是,包含 setup 和 config.xml 的 setup 文件夹位于我的桌面上。

我以为它会在当前位置寻找它。这将是设置文件夹。

困难在于我的安装文件夹将从 Internet 下载,任何用户都可以下载它并将其解压缩到计算机上的任何位置。

这是我的安装事件代码 sn-p。

非常感谢您的建议

protected override void OnAfterInstall(System.Collections.IDictionary savedState)
    {
        DataTable dt = new DataTable();
        MessageBox.Show(Application.StartupPath.ToString());
        dt.ReadXml("config.xml");

        MessageBox.Show(base.Context.Parameters["CAT_TargetDir"].ToString());
    } 

【问题讨论】:

    标签: c# installation custom-action


    【解决方案1】:

    假设您说的是 MSI,那不是 OriginalDatabase 属性吗?

    【讨论】:

      【解决方案2】:

      假设您没有误输入 CAT_TargetDir 而不是 TARGETDIR,您可以执行以下解决方法:设置 CustomActionData 并将 TARGETDIR 作为参数传递给您的自定义操作。这不是最优雅的解决方案,但它应该很容易工作。

      【讨论】:

        【解决方案3】:

        我设法解决了这个问题。

        答案就是写一个简单的 bat 文件来为我完成所有工作。然后 bat 文件将调用 setup 并安装应用程序。

        谢谢,

        【讨论】:

          【解决方案4】:
          猜你喜欢
          • 1970-01-01
          • 2013-12-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多