InstallShield 无法使用 .NET Installer 完成安装
InstallShield failing to complete installation with .NET Installer
过去,我向我的安装程序添加了一个 .NET 安装程序 class 文件,在安装的提交和卸载阶段执行自定义操作。我最近一次使用此配置构建安装程序是在 2016 年 2 月。
然而,最近的安装程序版本安装在安装过程中失败,当调用 .NET 安装程序 class 时出现错误 1001,即通用 .NET 安装程序 class异常。
我尝试用一个 DLL 创建一个新的安装程序;当 .NET Installer Class 设置设置为 No 时,安装完成并将单个 DLL 复制到安装目录。当 .NET 安装程序 Class 设置为是时,我在安装过程中遇到错误 1001 消息。
对于此测试设置,.NET 安装程序 class 未设置为执行提交、安装、回滚和卸载覆盖中的调用基础以外的任何操作:
namespace My.Namespace.Install
{
[RunInstaller(true)]
public partial class Installer : System.Configuration.Install.Installer
{
public Installer()
{
InitializeComponent();
}
public override void Commit(IDictionary savedState)
{
base.Commit(savedState);
}
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);
}
public override void Rollback(IDictionary savedState)
{
base.Rollback(savedState);
}
public override void Uninstall(IDictionary savedState)
{
base.Uninstall(savedState);
}
}
}
在输出日志中,我只看到围绕错误 1001 消息的以下内容:
MSI (s) (E0:98) [08:19:18:014]: Creating MSIHANDLE (5) of type 790536
for thread 9368
MSI (s) (E0:C8) [08:19:18:014]: Invoking remote custom action. DLL:
C:\Windows\Installer\MSIC3AD.tmp, Entrypoint: ManagedInstall
MSI (s) (E0:98) [08:19:18:014]: Generating random cookie.
MSI (s) (E0:98) [08:19:18:014]: Created Custom Action Server with PID
7520 (0x1D60).
MSI (s) (E0:98) [08:19:18:061]: Running as a service.
MSI (s) (E0:98) [08:19:18:077]: Hello, I'm your 32bit Elevated
Non-remapped custom action server.
MSI (s) (E0!7C) [08:19:18:108]: Creating MSIHANDLE (6) of type 790531
for thread 8828 Error 1001.
MSI (s) (E0!7C) [08:19:19:306]:
MSI (s) (E0:C8) [08:19:19:306]: Leaked MSIHANDLE (6) of type 790531
for thread 8828
MSI (s) (E0:C8) [08:19:19:306]: Note: 1: 2769 2:
_4AE00A18A12F07BD1929A5512BB0EE07.install 3: 1 Info 2769. Custom Action _4AE00A18A12F07BD1929A5512BB0EE07.install did not close 1
MSIHANDLEs. CustomAction _4AE00A18A12F07BD1929A5512BB0EE07.install
returned actual error code 1603 (note this may not be 100% accurate if
translation happened inside sandbox)
MSI (s) (E0:C8) [08:19:19:306]: Closing MSIHANDLE (5) of type 790536
for thread 9368 Action ended 8:19:19: InstallFinalize. Return value 3.
错误 1001 消息出现两次(对于安装,安装失败后,对于回滚)。我在 InstallShield 2011 和 InstallShield 2014 Premier 中都尝试过,结果相同。
使用这些 .NET 安装程序 class 文件的能力最近是否有所改变,或者我可以执行其他步骤来尝试弄清楚发生了什么?
在构建机器上卸载 .NET 4.6 并重新安装 .NET 4.5.2 似乎已经解决了这个问题。
过去,我向我的安装程序添加了一个 .NET 安装程序 class 文件,在安装的提交和卸载阶段执行自定义操作。我最近一次使用此配置构建安装程序是在 2016 年 2 月。
然而,最近的安装程序版本安装在安装过程中失败,当调用 .NET 安装程序 class 时出现错误 1001,即通用 .NET 安装程序 class异常。
我尝试用一个 DLL 创建一个新的安装程序;当 .NET Installer Class 设置设置为 No 时,安装完成并将单个 DLL 复制到安装目录。当 .NET 安装程序 Class 设置为是时,我在安装过程中遇到错误 1001 消息。
对于此测试设置,.NET 安装程序 class 未设置为执行提交、安装、回滚和卸载覆盖中的调用基础以外的任何操作:
namespace My.Namespace.Install
{
[RunInstaller(true)]
public partial class Installer : System.Configuration.Install.Installer
{
public Installer()
{
InitializeComponent();
}
public override void Commit(IDictionary savedState)
{
base.Commit(savedState);
}
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);
}
public override void Rollback(IDictionary savedState)
{
base.Rollback(savedState);
}
public override void Uninstall(IDictionary savedState)
{
base.Uninstall(savedState);
}
}
}
在输出日志中,我只看到围绕错误 1001 消息的以下内容:
MSI (s) (E0:98) [08:19:18:014]: Creating MSIHANDLE (5) of type 790536 for thread 9368
MSI (s) (E0:C8) [08:19:18:014]: Invoking remote custom action. DLL: C:\Windows\Installer\MSIC3AD.tmp, Entrypoint: ManagedInstall
MSI (s) (E0:98) [08:19:18:014]: Generating random cookie.
MSI (s) (E0:98) [08:19:18:014]: Created Custom Action Server with PID 7520 (0x1D60).
MSI (s) (E0:98) [08:19:18:061]: Running as a service.
MSI (s) (E0:98) [08:19:18:077]: Hello, I'm your 32bit Elevated Non-remapped custom action server.
MSI (s) (E0!7C) [08:19:18:108]: Creating MSIHANDLE (6) of type 790531 for thread 8828 Error 1001.
MSI (s) (E0!7C) [08:19:19:306]:
MSI (s) (E0:C8) [08:19:19:306]: Leaked MSIHANDLE (6) of type 790531 for thread 8828
MSI (s) (E0:C8) [08:19:19:306]: Note: 1: 2769 2: _4AE00A18A12F07BD1929A5512BB0EE07.install 3: 1 Info 2769. Custom Action _4AE00A18A12F07BD1929A5512BB0EE07.install did not close 1 MSIHANDLEs. CustomAction _4AE00A18A12F07BD1929A5512BB0EE07.install returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
MSI (s) (E0:C8) [08:19:19:306]: Closing MSIHANDLE (5) of type 790536 for thread 9368 Action ended 8:19:19: InstallFinalize. Return value 3.
错误 1001 消息出现两次(对于安装,安装失败后,对于回滚)。我在 InstallShield 2011 和 InstallShield 2014 Premier 中都尝试过,结果相同。
使用这些 .NET 安装程序 class 文件的能力最近是否有所改变,或者我可以执行其他步骤来尝试弄清楚发生了什么?
在构建机器上卸载 .NET 4.6 并重新安装 .NET 4.5.2 似乎已经解决了这个问题。