1

C# 2005

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

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

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

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

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

这是我安装事件的代码片段。

非常感谢您的任何建议

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());
    } 
4

4 回答 4

1

假设您在谈论 MSI,那不是OriginalDatabase属性吗?

于 2009-05-19T03:11:24.133 回答
1

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

于 2009-08-01T22:07:41.087 回答
0

我设法解决了这个问题。

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

谢谢,

于 2010-01-15T10:43:32.123 回答
0

你也可以试试这个:我需要一个从 MSI 源目录复制文件的 MSI 自定义操作

于 2010-01-19T15:46:36.613 回答