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

本文关键字:安装 程序 磁盘 位置 原始 exe | 更新日期: 2023-09-27 18:06:14

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

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

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

OriginalDatabase属性对您有帮助吗?

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

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

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