有很多线程和问题存在。但我所面临的错误情况与其他人不同。所以让我在这里解释一下。
借助于这篇文章Installer Class and Custom Actions,我将项目主输出(具有安装程序类)添加为Commit中的自定义操作,并设置自定义操作条件:NOT REMOVE。但是,当我尝试运行MSI时,它会在弹出窗口中给我一个错误,Error 1001. Error 1001. InstallUtilLib.dll: Unknown error.
以下是我的安装程序代码和日志:
项目生成的目标平台是任意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]\"
条件:NOT REMOVE
事件查看器中的日志快照:
来自MsiInstaller的事件ID 11001的说明无法找到。引发此事件的组件未安装在本地计算机上或安装已损坏。您可以在本地计算机上安装或修复该组件。
如果事件起源于另一台计算机,则必须使用事件保存显示信息。
以下信息已与事件一起包括:
产品:MyApp--错误1001。错误1001。InstallUtilLib.dll:未知错误。
(null)
(null)
(null)
(null)
(null)
消息资源存在,但在字符串/消息表中找不到该消息。
在%TEMP%文件夹中生成的日志:
错误1001。错误1001。InstallUtilLib.dll:未知错误。
===日志记录停止:2017年11月16日19:43:53===
无论我更改什么,无论是自定义操作条件还是在安装或提交或两者下添加自定义操作,我都会得到相同的错误和相同的日志。有时它可以使用相同的配置工作,但是然后自定义操作不会被调用。为了避免错误,我不得不删除自定义操作。但那不是要求。我无法理解这个错误的含义?
我尝试从头开始创建一个类似的新项目并添加自定义操作。它有效。但是不适用于当前项目。可能的原因是什么?
我会感激任何帮助。我真的被卡住了。提前致谢。
编辑:
我们使用add-in express(v8.2.4371)框架开发office-addin。它会自动将adxRegistrator.exe作为自定义操作添加(用于安装、回滚和卸载模式)执行某些操作,例如注册插件等。
该系统是64位类型。项目针对4.0 .net框架版本。
我正在为安装、提交自定义操作模式添加自己的自定义操作。是否可以添加两个自定义操作?如果可以,我应该/必须注意哪些事项?例如:它们的条件或入口点参数。