C#2005

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

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

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

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

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

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

非常感谢您的任何建议

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());
    } 
有帮助吗?

解决方案 3

我设法解决这个问题。

在回答只是写一个简单的bat文件,会做所有的工作对我来说。然后bat文件将会调用设置和安装应用程序。

谢谢,

其他提示

假设您正在谈论 MSI,那不是 原始数据库 财产?

假如你没有打错CAT_TargetDir代替TARGETDIR你可以做以下工作围绕:设置CustomActionData并通过TARGETDIR作为参数传递给您的自定义操作。这不是最优雅的解决方案,但它应该工作很容易。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top