【发布时间】:2017-05-05 07:35:28
【问题描述】:
在我的自定义 DLL 中,我需要检查是否正在安装或卸载产品,因此需要获取 "INSTALLED" 属性的值(就像在 WiX 脚本中一样)。这是我在 C++ DLL 中所做的:
WCHAR propValue[MAX_PATH];
DWORD propValLen = MAX_PATH;
// MSIHANDLE msiHandle;
MsiGetProperty(msiHandle, L"INSTALLED", propValue, &propValLen);
propValue[propValLen] = 0;
但结果总是一个空字符串(对于安装和卸载)!如何检查产品是否正在安装或卸载?
【问题讨论】:
-
如何安排此自定义操作? (请参阅Obtaining Context Information for Deferred Execution Custom Actions 了解我问的原因。)
-
是的,这就是我刚刚发现的问题。有些动作是即时的,有些是延迟的!
-
@MichaelUrman,您能否将您的输入添加为答案?它将对其他人有用。这些信息在任何地方都不清楚。
-
@Ajay 这篇写于 2001 年的文章在我的“必读”列表中,并且非常详细地介绍了与这个问题相关的所有内容。 installsite.org/pages/en/isnews/200108
标签: c++ visual-c++ dll wix windows-installer