2

我创建了一个 msi 包,它在安装过程中将一些 xml 文件压缩为 zip 文件。为此,我创建了一个 CustomAction:

<CustomAction Id="CompressMy" BinaryKey="zipEXE" ExeCommand="a -tzip &quot;[TEMPLATE_DIR]my.zip&quot; &quot;[TempSourceFolder]data.xml&quot;" Return="check" HideTarget="no" Impersonate="no" Execute="deferred" />

安装工作正常,如果我尝试安装到本地驱动器,但最近客户想要安装[TEMPLATE_DIR]到 Windows Vista 上的网络驱动器。CustomAction 失败,因为提升的安装用户尚未映射网络驱动器,即使调用安装程序的用户已映射驱动器也是如此。如果我尝试安装到 unc 路径,也会发生这种情况。我使用 7zip 进行压缩。我已将它添加到我的 msi 包中。

我曾尝试设置Impersonate="yes",但如果我TEMPLATE_DIR是 ProgramData-dir,则安装失败。

你知道我能做什么吗?我考虑过检查是否TEMPLATE_DIR是网络路径,但我不知道如何检查。或者您是否有任何其他想法如何在使用此自定义操作时提供本地和网络安装。

如果有什么建议就好了

问候,马丁

4

1 回答 1

0

完成任务的一种方法是为您的自定义操作使用本机代码。我有类似的问题,我将所有可能的 CA 转换为本机代码(C++)

一切顺利

s

于 2010-05-01T12:43:17.373 回答