【问题标题】:Visual studio Installer Issue : Error 1001. Error 1001. InstallUtilLib.dll: Unknown errorVisual Studio 安装程序问题:错误 1001。错误 1001。InstallUtilLib.dll:未知错误
【发布时间】:2017-11-17 07:09:15
【问题描述】:

那里有很多线程和问题。但是我面临的错误是完全不同的情况。所以让我在这里解释一下。 借助本文Installer Class and Custom Actions

我在 Commit 中添加了项目主要输出(具有安装程序类)作为自定义操作。 使用自定义操作条件:NOT REMOVE。 但是当我尝试运行 MSI 时,它在弹出窗口中给了我一个错误, 错误 1001。错误 1001。InstallUtilLib.dll:未知错误。

以下是我的安装程序代码和日志:

Project Build 的目标平台是任何 CPU,安装程序的目标平台是 x86 位。

InstallHelper.cs

[RunInstaller(true)]
public partial class InstallHelper : System.Configuration.Install.Installer
{
    public InstallHelper()
    {
        InitializeComponent();
    }

    public override void Install(IDictionary stateSaver)
    {
        base.Install(stateSaver);
    }

    public override void Commit(IDictionary savedState)
    {
        base.Commit(savedState);
        //configrureAppAfterInstallation();
    }
}

项目的主要输出包含在 Commit 操作下的自定义操作中,具有以下参数:

CustomActionData : /targetDir="[TARGETDIR]\", /srcDir="[SOURCEDIR]\"

条件:不删除

以及事件查看器中的日志快照:

来自源 MsiInstaller 的事件 ID 11001 的描述不能 成立。引发此事件的组件未安装在 您的本地计算机或安装已损坏。你可以安装 或修复本地计算机上的组件。

如果事件源自另一台计算机,则显示信息 必须与事件一起保存。

活动中包含以下信息:

产品:MyApp -- 错误 1001。错误 1001。InstallUtilLib.dll: 未知错误。

(空)

(空)

(空)

(空)

(空)

消息资源存在,但在 字符串/消息表

以及%TEMP%文件夹中生成的日志:

错误 1001。错误 1001。InstallUtilLib.dll:未知错误。

=== 记录已停止:2017 年 11 月 16 日 19:43:53 ===

无论我更改的是自定义操作条件,还是在安装或提交或两者下添加自定义操作。我得到了同样的错误和同样的日志。 有时它使用相同的配置,但不会调用自定义操作。 为了避免错误,我不得不删除自定义操作。但这不是要求。 我不明白,这个错误是什么意思?

我尝试从头开始创建一个全新的类似项目并添加自定义操作。有效。但不是与当前项目。可能的原因是什么?

如果有任何帮助,我将不胜感激。我真的陷入了困境。 提前致谢。

========编辑=========

我们正在使用add-in express (v8.2.4371) 框架来开发office-addin。 它会自动将 adxRegistrator.exe 添加为 customAction(用于安装、回滚和卸载模式),以执行一些操作,例如注册加载项等。

系统为 64 位类型。项目针对 4.0 .net 框架版本。

我正在为 Install, commit 自定义操作模式添加我自己的 customAction。 是否可以添加两个自定义操作? 如果是我应该/必须关心的事情是什么?例如比如条件或它们的入口点参数。

【问题讨论】:

  • 您的项目或安装程序是否有可能针对 x64?
  • 项目构建的目标平台是任何 CPU。安装程序是 x86 位 CPU。
  • 在没有 CustomActionData 的情况下尝试 - 有时这会导致问题。这至少给了你一个开始解决这个问题的地方。
  • 如果我删除 cutom 操作,它可以工作,但我必须编写一个安装程序类来执行一些操作。
  • @pancham:我没有说要删除自定义操作,我建议删除 CustomActionData 以查看是否更正。该字符串的内部解析有时会失败,这就是我建议它的原因。

标签: c# visual-studio-2013 windows-installer custom-action visual-studio-setup-proje


【解决方案1】:

我无法使用这些自定义操作参数重现这一点,因此我将列出您应该查看的内容:

  1. 在架构上保持一致。如果您安装了 x86 的 TargetPlatform,请使用以 x86 为目标的自定义操作代码。 InstallUtilLib 的内部将加载固件版本,然后尝试使用反射加载您的类,架构不匹配可能导致该托管 Dll 失败。

  2. 确保为自定义操作安装了 .NET FW。

  3. 您的提交 CA 不需要 NOT REMOVE 条件。根据定义,它只会在安装的提交阶段被调用。

  4. 您必须在自定义操作的所有节点上都有自定义操作:安装、提交、回滚、卸载。它们之间存在一些内部状态,它们都是必要的。此外,您的代码没有显示任何卸载或回滚方法。看起来您手动添加了此代码,而不是使用向导添加安装程序类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多