WiX安装程序会留下空文件夹以进行自定义操

时间:2015-04-30 07:36:31

标签: wix custom-action

我创建了一个WiX安装程序项目和一个CustomAction项目。我已成功将MyCustomAction添加到安装脚本中,它可以正常工作。

但是,每次执行安装程序时,安装程​​序都会在[INSTALLFOLDER]中留下空文件夹。它们的名称为MyCustomAction.CA.dll-MyCustomAction.CA.dll-0MyCustomAction.CA.dll-1等。即使是卸载程序也不会删除它们,因此空文件夹的数量会变得更大。

有没有办法防止文件夹创建?我尝试了不同的Execute值(commit,deferred),但它们似乎没有任何区别。

MyCustomAction定义如下:

<CustomAction Id="MyCustomAction"
              Return="check"
              Execute="commit"
              FileKey="MyCustomAction.CA.dll"
              DllEntry="MyCustomAction" />

<InstallExecuteSequence>
  <Custom Action="MyCustomAction" Before="InstallFinalize">NOT Installed</Custom>
</InstallExecuteSequence>

2 个答案:

答案 0 :(得分:0)

我找到了问题的解决方案:我已将MyCustomAction.CA.dll包含在我的产品的安装文件中,而不包含在自己的片段中。这导致dll被复制到安装文件夹。

现在,在自己的片段中定义CustomActions时,不会在INSTALLFOLDER中创建临时文件夹。

答案 1 :(得分:0)

你为他们添加了一个二进制条目吗?

<Binary Id='FooBinary' SourceFile='foo.dll'/>

http://wixtoolset.org/documentation/manual/v3/wixdev/extensions/authoring_custom_actions.html