【问题标题】:issues with msi installer on windows xpwindows xp上msi安装程序的问题
【发布时间】:2011-11-23 02:25:09
【问题描述】:

我对最近在为 Windows XP 64 位平台制作 MSI 安装程序时遇到的问题一无所知。

在安装程序的启动条件下,我尝试从注册表中读取,但安装程序未获取正确的值。我尝试检查不同的值名称,以确认它不仅仅是一个特定的值名称,并发现它的行为方式相同。

我尝试在错误消息中打印获取的注册表值数据,并意识到在某些情况下它根本没有任何值,而在其他情况下,它无法获得作为完整值数据一部分的任何数字。

例如,如果尝试读取以下数据:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
  • 值名称:InstallRoot
  • 数值数据:C:\Windows\Microsoft.NET\Framework64\

安装程序获取的数据是:C:\Windows\Microsoft.NET\Framework\。在其他一些情况下,它会得到一个空字符串。

【问题讨论】:

    标签: installation windows-xp registry conditional-statements launch


    【解决方案1】:

    注册表搜索默认使用 32 位注册表配置单元,仅当设置了 msidbLocatorType64bit flag 时才使用 64 位配置单元。

    所以解决方案是使用相同属性的 2 次搜索:

    • 一个用于 32 位配置单元
    • 一个用于 64 位配置单元(带有 msidbLocatorType64bit 标志)

    请注意,Visual Studio 安装项目不支持此功能。其他设置创作工具可以。

    【讨论】:

    • 是的....它有效!!!! :)...谢谢你..!!!你真的让我摆脱了困境......我可能永远不会自己在适当的时候找到解决方案。我使用 Orca 进行了建议的更改
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多