开发者

Wix: Write File in Custom Action

i got a problem with wix and managed custom actions: in my custom action i create a file and save it in the INSTALLLOCATION path. It seems like it works, no exception is thrown. But after the inst开发者_如何学JAVAallation, the just created File not exists in the INSTALLLOCATION.

WiX-File:

<CustomAction Id="SetInstallPath" Property="CreateTimeStamp" Value="[INSTALLLOCATION]"
   Execute="immediate"/>
<CustomAction Id="CreateTimeStamp" BinaryKey="SetupActions.dll"  
   DllEntry="CreateTimeStampFile" Execute="deferred" Return="check"/>
<InstallExecuteSequence>
  <Custom Action="SetInstallPath" Before="InstallFinalize"/>
  <Custom Action="CreateTimeStamp" Before="InstallFinalize"/>
</InstallExecuteSequence>

Custom-Action-Methode:

...
var keys = new string[session.CustomActionData.Keys.Count];
session.CustomActionData.Keys.CopyTo(keys, 0);
var cad = keys[0];
var filepath = cad + "myfile.xml";
File.Create(filepath);
...

Anyone a idea?

Edited: After the post from Scott Boettger y edited the wix-file content.


I don't think your configuration is correct. Here are some of the problems:

  1. You shouldn't use private properties in InstallExecuteSequence (CREATE_TIME_STAMP is better than CreateTimeStamp because it's a public property).
  2. You're setting the CreateTimeStamp property and reading CustomActionData inside your custom action. You should set the CustomActionData property to the INSTALLLOCATION path.
  3. Since your custom action is creating a file in the install folder, it should run as deferred and Impersonate attribute should be set to "no". This way it will have enough privileges to create the file.

Try making these modifications and see if the problem persists.


I believe that your custom actions need to fall between InstallInitialize and InstallFinalize. Try this:

<InstallExecuteSequence>
  <Custom Action="SetInstallPath" After="InstallInitialize"/>
  <Custom Action="CreateTimeStamp" Before="InstallFinalize"/>
</InstallExecuteSequence>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜