Create file in installation folder using WiX custo

2019-08-06 17:31发布

I try to create a installer that has the need to create a file in the programme folder after Installation. For doing so, I have created a custom action, but I now have the following problem:

In order to write the file, I need to know the installation directory from session["INSTALLDIR"], which is only available if the action is executed "immediate".

However, if i run "immediate" after "install files", the target directory does not yet exist. If I run "deferred", it exists, but i cannot access session["INSTALLDIR"].

If I run "immediate" after "InstallFinalize", I can get the variable and the directory exists, but I am not elevated and hence not allowed to write the file.

What is the correct combination for writing a file to the installation directory?

2条回答
干净又极端
2楼-- · 2019-08-06 17:47

Beyond using a built in extension for custom actions instead of writing your own, the next level would be how can I move complexity / custom actions out of the installer?

One thought is to write it to the registry instead. Another thought is for the application reading the value to be able to determine installation directory on it's own. One possibility is reflection to get the location another possibility is to query the MSI API for where the product is installed.

查看更多
我只想做你的唯一
3楼-- · 2019-08-06 17:48

You need to use CustomActionData to access property values from a deferred CA. You need something like this

or

another answer

查看更多
登录 后发表回答