我尝试创建一个wix安装程序,需要在安装后在程序文件夹中创建一个文件。为此,我创建了一个自定义操作,但现在我遇到了以下问题:
为了编写文件,我需要知道session["INSTALLDIR"]
中的安装目录,该目录仅在执行操作"immediate"
时可用。
但是,如果我在“安装文件”之后运行“立即”,则目标目录尚不存在。如果我运行“延期”,它就存在,但我无法访问session["INSTALLDIR"]
。
如果我在“InstallFinalize”之后运行“immediate”,我可以获取变量并且目录存在,但我没有被提升,因此不允许写入文件。
将文件写入安装目录的正确组合是什么?
答案 0 :(得分:2)
答案 1 :(得分:1)
除了使用内置扩展来进行自定义操作而不是编写自己的操作之外,下一个级别是如何将复杂性/自定义操作移出安装程序?
一种想法是将其写入注册表。另一个想法是读取值的应用程序能够自己确定安装目录。一种可能性是获得该位置的另一种可能性是查询MSI API以了解产品的安装位置。