相关:Accessing InstallShield "Support Files" from DTF (Managed Custom Action)
我需要阅读属性SUPPORTDIR。根据这个论坛(http://community.flexerasoftware.com/showthread.php?t=180742&page=3),我需要使用MsiGetProperty。
如何从DTF调用MsiGetProperty?
发布于 2011-01-13 13:51:35
DTF的Session类具有以下方法:
公共字符串string string属性get: set:
这会被远程转移到非托管C++端,在那里它们调用MsiGetProperty和MsiSetProperty。这有点像VBScript Session.Property("SUPPORTDIR"),只是比较简单。
InstallShield应该已经安排了一个名为ISSetupFilesExtract的自定义操作。记录您的安装,并查看它是否正在执行并为属性分配路径。
我唯一能想到的其他问题是,如果您正在执行一个正确的UAC故事,即不提升您的UI,然后提升您的执行序列,请确保SUPPORTDIR列在SecureCustomProperties属性中。只有在UI序列中获得值的“安全”属性才被传递到执行序列。"PUBLIC“属性将默认为安装程序开始执行时的任何属性。
我可以告诉您,我在我的DTF自定义操作中使用SUPPORTDIR (有时直接使用,有时通过CustomActionData序列化),而且我对它没有问题。
发布于 2011-01-13 10:05:26
复制并将我的评论中的信息扩展到Accessing InstallShield "Support Files" from DTF (Managed Custom Action)
会话类的对象传递给DTF中的自定义操作。使用会话“SUPPORTDIR”访问属性值(用于立即操作)。对于延迟操作,您必须通过CustomActionData传递它。此外,对于直接CA,请确保将读取SUPPORTDIR的操作安排在CostFinalize之后--目录表中的所有条目都可作为属性访问。
https://stackoverflow.com/questions/4678451
复制相似问题