【问题标题】:What extra steps do you take when creating MSI installers for Vista?在为 Vista 创建 MSI 安装程序时,您采取了哪些额外步骤?
【发布时间】:2008-12-19 04:44:29
【问题描述】:

我有一个非常简单的安装项目,它将三个 dll 复制到 GAC。这就是它所要做的。它在 XP 中工作正常,但在 Vista 机器上,它会出错,指出它无法写入文件并检查权限。我确信这与 Vista 中的一些冒充废话有关,但我不知道如何解决。

有没有其他人遇到过这种情况,如果遇到过,您是如何克服的?

【问题讨论】:

    标签: .net windows-vista installation gac


    【解决方案1】:

    如果您使用的是 Windows Installer,您是否将程序集放入特殊的 Global Assembly Cache 文件夹中?这在 Vista 和 Windows 7 上一直对我有用。不需要使用 GACUtil 或其他任何东西,只需将程序集放在安装程序项目的正确文件夹中即可。

    【讨论】:

      【解决方案2】:

      您使用 gacutil.exe 安装 dll 吗?还是只复制文件?

      无论如何,对于自定义 dll,应该避免使用 GAC,除非它们被许多应用程序使用。将 dll 保持在应用程序附近/本地:它只会花费您一些磁盘空间,并且它使您能够使用简单的 Xcopy 部署。

      【讨论】:

      • 感谢您的回复,但您可以省去我使用 GAC 的讲座。我知道何时以及何时不使用它。在这种情况下,我需要使用 GAC。这就是为什么我提出这个问题并创建了一个安装程序来自动化这个过程。
      • 很抱歉,但即使是 MS 指南也会告诉您这一点。无论如何,降低我(无论是谁)都不会为您解决问题,是吗?我不是问了一个问题,你没有回答吗? i.o.w.:你用 gacutil.exe 吗?
      • 为了记录,我没有拒绝你。要回答你的问题,不,我没有直接使用 gacutil。 MSI 安装程序会为您执行此操作。我说的是构建一个简单的 GAC 为您提供三个程序集的安装程序。
      • 我放弃了 MSI 安装程序,转而使用 InstallShield 安装程序。它运行良好,但我仍然不知道为什么我在 Vista 上遇到这些问题。
      • 如果您使用 vs.net 安装程序包中的 MSI:那确实很糟糕。我总是使用 NSIS,因为它是免费的并且非常快速/简单。关于 GAC:没有任何理由说明任何第三方都应该出现在 GAC 中,甚至政策文件也没有,这就是我提到它的原因。
      【解决方案3】:

      我有一些(第 3 方)MSI,除非我从一开始就强制使用提升模式,否则它们将无法正确安装,即使它们稍后会显示 UAC 提示。

      疑难解答...我假设您是从管理员帐户安装的。但是,是否启用了 UAC?如果是,您是否收到 UAC 提升提示?尝试在提升模式下运行 MSI 包,看看它是否有效。从提升的命令提示符:

      msiexec /i setup.msi
      

      【讨论】:

        【解决方案4】:

        您使用什么编译器来制作 MSI?在上周末的乐趣之后,我可能会成为 MSI 与 Vista 问题的专家 :)

        如果使用 VC2003 或 VC2005,根据编译器版本会出现不同的问题。

        如果是 2005,请确保已安装服务包和 Vista 服务包。这可能会解决您的问题。

        如果失败,您可以通过自定义操作将它们放入 GAC,但请注意 2005 年存在错误,即 no_impersonate 位设置不正确。您必须自己使用脚本或 orca.exe 设置此位。

        【讨论】:

          猜你喜欢
          • 2021-03-29
          • 2010-10-23
          • 1970-01-01
          • 2012-06-30
          • 1970-01-01
          • 2010-10-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多