Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取自定义操作中setup.exe的位置_C#_Installation_Custom Action - Fatal编程技术网

C# 获取自定义操作中setup.exe的位置

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文件夹位于

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

假设你说的是一个微星,那不是属性吗

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

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

谢谢,

您也可以试试这个: