从安装程序c#中找到安装程序exe的原始位置

时间:2011-08-19 20:00:02

标签: c# windows-installer working-directory

我有一个MSI安装程序,在安装程序退出之前,在最后运行c#自定义操作执行sql脚本。我们决定最好的方法是将sql脚本文件粘贴在与MSI文件相同的目录中,并让它以这种方式加载脚本。

问题是,安装程序将自身复制到Windows \ system32然后从那里执行,因此我无法找到原始目录以执行脚本文件。任何帮助或想法将不胜感激!

2 个答案:

答案 0 :(得分:2)

OriginalDatabase属性对您有帮助吗?

  

Windows Installer将 OriginalDatabase 属性设置为用于启动安装的安装数据库的路径。如果从命令行启动安装,则该值取决于 REINSTALLMODE 属性中是否存在recache包选项(-v标志)。

答案 1 :(得分:0)

如果您在C#中编写托管自定义操作,则应使用Windows Installer XML(WiX)部署工具基础(DTF)。您可以创建一个C#项目并将您的SQL文件添加为项目内容,它将在运行时打包并在当前目录中可用。

顺便说一下,假设(或者不是)您正在使用MSSQL,WiX已经有SQL脚本执行处理。