我正在运行从 InstallShield 安装程序调用的 C# 自定义操作(只是一个类库),我需要访问启动 .exe 的文件夹。我试过了:
Directory.GetCurrentDirectory()
Environment.CurrentDirectory()
Application.StartupPath
Application.ExecutablePath
他们都返回 c:\windows\syswow64 - 而不是 .exe 启动的文件夹。我猜这是因为 .dll 嵌入在 .msi 中,并且被提取到 c:\windows\syswow64 (尽管很难想象它真的被提取到那里)。
这就是您需要知道的全部内容,但如果您想了解更多,我将卸载以前编写为 InstallScript MSI 项目的版本,并以静默方式卸载它们,您需要提供“响应文件”(您需要一个 Flexera 帐户才能关注该链接),但它基本上说您需要将卸载操作“记录”到响应文件中,然后使用以下语法将该文件传递给 msiexec 卸载:setup.exe /s /f1"response file name"
. 这些响应文件位于安装程序文件夹中,这就是为什么我需要知道该文件夹是什么。有人知道获取此文件夹的引用的方法吗?