MSI使用installshield2009

时间:2012-06-30 09:19:12

标签: windows-installer installshield

有没有办法在installshield 2009中为用户设置一些按摩,以便在 -

时给出提示
  1. 他们重命名设置或文件名是否已更改?
  2. 正在从网络位置运行设置吗?
  3. 何时打开UAC功能?
  4. 任何建议都会受到高度赞赏和欢迎。

    谢谢, 维迪亚

1 个答案:

答案 0 :(得分:0)

Windows Installer提供了检测1和2的属性。

  1. OriginalDatabase属性保存.msi文件的路径 请仔细阅读说明:Windows Installer在缓存程序包时重命名程序包。所以你的安装必须解决这个问题。
  2. SourceDir属性包含包含安装包的目录 在使用该属性之前,您必须安排ResolveSource action。再次,您必须小心这一点,而不是在卸载期间安排ResolveSource操作。
  3. 据我所知,Windows Installer不支持直接检测是否启用了UAC。
  4. 如果你想检测bootstapper setup.exe是否已重命名或是从网络运行,那就是另一个故事,我无法帮助你。


    请说明为什么需要检测这两种情况。

    1. 为什么设置命名会有所不同?
      我不认为用户经常重命名安装文件。如果您的安装程序包仅包含在一个文件中,我看不出任何重命名错误的原因。

        

      Vidya:我不确定,但用户说当他们尝试重命名设置时,他们会收到与某些编辑相关的消息,并且设置不允许他们重命名设置。

    2. 如果从网络位置运行设置,会发生什么变化? 可以从网络位置安装Windows Installer程序包。在管理员安装的情况下,甚至是从网络位置执行安装的常见情况。

        

      Vidya:问题是当我们从网络位置安装MSI并尝试在已安装的设置上运行更新时,会显示“无法找到文件”

    3. 如果您知道UAC开启或关闭,您在设置中做什么? Windows Installer本身可以很好地与UAC配合使用。您需要关心的是您编写的自定义操作:它们必须是UAC感知的。这一点仅归结为一个要求:只有延迟动作必须对系统进行修改,延迟动作在系统上下文中运行;其他自定义操作在当前登录用户的上下文中运行。对于Windows XP以及没有UAC的情况,此要求也适用:在非延迟操作中修改系统设置是不好的做法。

        

      Vidya:基本上,我们希望在启用UAC时向用户发送消息,并且该用户没有管理优先级,或只是通知他们在运行安装程序之前将UAC设置为最低。 / p>

相关问题