Visual Studio Installer问题:错误1001.错误1001. InstallUtilLib.dll:未知错误

时间:2017-11-17 07:09:15

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

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

的帮助下

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

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

Project Build的Target平台是任何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();
    }
}

项目的主要输出作为“提交”操作下的自定义操作包含以下参数:

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

条件:不删除

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

  

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

     

如果事件源自另一台计算机,则显示信息   不得不与事件一起得救。

     

活动中包含以下信息:

     

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

     

(NULL)

     

(NULL)

     

(NULL)

     

(NULL)

     

(NULL)

     

消息资源存在,但未在消息中找到消息   字符串/消息表

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

  

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

     

===伐木停止:11/16/2017 19:43:53 ===

无关紧要我改变的是自定义操作条件,还是在安装或提交下添加自定义操作或两者兼而有之。我得到了同样的错误和相同的日志。 有时它使用相同的配置,但随后不会调用自定义操作。 为了避免错误,我不得不删除自定义操作。但这不是要求。 我无法理解,这个错误意味着什么?

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

我将不胜感激任何帮助。我真的被这个困住了。 提前谢谢。

======的修改 ======

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

系统是64位类型。 Project的目标是4.0 .net框架版本。

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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