我对最近在为Windows XP 64位平台制作MSI安装程序时遇到的问题一无所知。
在我尝试从注册表中读取的安装程序的启动条件中,但安装程序未获取正确的值。我尝试检查不同的Value名称,以确认它不仅仅是一个特定的Value名称,并且发现它的行为方式相同。
我尝试在错误消息中打印获取的注册表值数据,并意识到在某些情况下它根本没有任何值,而在其他情况下,它无法获得任何数字作为完整值数据的一部分。< / p>
例如,如果尝试读取数据:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
C:\Windows\Microsoft.NET\Framework64\
安装程序提取的数据为:C:\Windows\Microsoft.NET\Framework\
。在其他一些实例中,它会得到一个空字符串。
答案 0 :(得分:2)
注册表搜索默认使用32位注册表配置单元,仅在设置msidbLocatorType64bit flag时才使用64位配置单元。
因此解决方案是使用具有相同属性的2次搜索:
请注意,Visual Studio安装项目不支持此功能。其他设置创作工具可以。