在自定义操作中获取 setup.exe 的位置
-
11-09-2019 - |
题
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作为参数传递给您的自定义操作。这不是最优雅的解决方案,但它应该工作很容易。
你也可以尝试这个: 我需要一个 MSI 自定义操作来从 MSI 源目录复制文件
不隶属于 StackOverflow