C# 获取自定义操作中setup.exe的位置
2005年 我正在使用安装程序类,因为我需要一个自定义操作,该操作将读取xml配置文件 因此,当用户双击安装程序时,同一文件夹中将有一个config.xml文件。我想在安装事件时读入这个config.xml文件。该文件夹将包含setup.exe和config.xml 但是,它找不到config.xml文件,因为它正在C:\windows\system32下查找它。我通过使用applicationstartup.path发现了这一点。但是,包含setup和config.xml的setup文件夹位于我的桌面上 我想它会在当前位置寻找它。这将是安装文件夹 困难在于我的安装文件夹将从Internet上下载,任何用户都可以下载并解压缩到他们计算机上的任何位置 下面是我的安装事件代码片段 非常感谢你的建议C# 获取自定义操作中setup.exe的位置,c#,installation,custom-action,C#,Installation,Custom Action,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());
}
假设你说的是一个微星,那不是属性吗 假设您没有错误输入
CAT_TargetDir
而不是TargetDir
,您可以执行以下解决方法:设置CustomActionData并将TargetDir作为参数传递给自定义操作。这不是最优雅的解决方案,但应该很容易。我设法解决了这个问题
答案就是写一个简单的bat文件,它将为我完成所有的工作。然后bat文件将调用安装程序并安装应用程序
谢谢,您也可以试试这个: