Installation windows xp上msi安装程序的问题
我对最近在为WindowsXP64位平台制作MSI安装程序时遇到的一个问题一无所知 在安装程序的启动条件下,我试图从注册表读取,但安装程序没有获取正确的值。我尝试检查不同的值名,以确认它不仅仅是一个特定的值名,并发现它的行为方式相同 我试图在错误消息中打印获取的注册表值数据,并意识到在某些情况下,它根本没有得到任何值,而在其他情况下,它无法获得作为完整值数据一部分的任何数字 例如,如果尝试读取以下各项的数据:Installation windows xp上msi安装程序的问题,installation,windows-xp,registry,conditional-statements,launch,Installation,Windows Xp,Registry,Conditional Statements,Launch,我对最近在为WindowsXP64位平台制作MSI安装程序时遇到的一个问题一无所知 在安装程序的启动条件下,我试图从注册表读取,但安装程序没有获取正确的值。我尝试检查不同的值名,以确认它不仅仅是一个特定的值名,并发现它的行为方式相同 我试图在错误消息中打印获取的注册表值数据,并意识到在某些情况下,它根本没有得到任何值,而在其他情况下,它无法获得作为完整值数据一部分的任何数字 例如,如果尝试读取以下各项的数据: HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\
HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\.NETFramework
- 值名称:InstallRoot
- 值数据:
C:\Windows\Microsoft.NET\Framework64\
安装程序获取的数据是:
C:\Windows\Microsoft.NET\Framework\
。在其他一些情况下,它会得到一个空字符串。注册表搜索在默认情况下使用32位注册表配置单元,只有在设置了时才使用64位注册表配置单元
因此,解决方案是使用两个具有相同属性的搜索:
- 一个用于32位蜂巢
- 一个用于64位配置单元(带有MSIDbLocatorType64位标志)