从安装程序 c# 中找到磁盘上安装程序 exe 的原始位置
我有一个 MSI 安装程序,最后运行了 ac# 自定义操作,该操作在安装程序退出之前执行 sql 脚本。我们认为执行此操作的最佳方法是将 sql 脚本文件粘贴在与 MSI 文件相同的目录中,并让它以这种方式加载脚本。
问题是,安装程序将自身复制到Windows\system32,然后从那里执行,所以我找不到原始目录来执行脚本文件。任何帮助或想法将不胜感激!
I have an MSI installer with a c# custom action running at the end that executes an sql script before the installer exits. We decided the best way to do this is to stick the sql script file in the same directory as the MSI file and have it load the script that way.
The problem is, the installer copies itself to Windows\system32 and then executes from there, so I cannot find the original directory in order to execute the script file. Any help or ideas would be appreciated!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
OriginalDatabase
属性对您有帮助吗?Does
OriginalDatabase
property help you?如果您使用 C# 编写托管自定义操作,则应使用 Windows Installer XML (WiX) 部署工具基础 (DTF)。您可以创建一个 C# 项目并将 SQL 文件添加为项目内容,它将一起打包并在运行时在当前目录中可用。
顺便说一句,假设(或没有)您正在使用 MSSQL,WiX 已经具有 SQL 脚本执行处理功能。
If you are writing managed custom actions in C# you should be using Windows Installer XML's (WiX) Deployment Tools Foundation (DTF). You can create a C# project and add your SQL file as project content and it will get packaged up along for the ride and be available in the current directory at runtime.
BTW, assuming ( or not ) that you are using MSSQL, WiX already has SQL script execution handling.