从2009年的InstallShield MSI安装.NET服务问题 - 自定义操作没有关闭1个MSIHANDLEs

问题描述 投票:1回答:2

我使用的2009年InstallShield能够生成一个代码库我继承了微星。该代码是由VB6的,和.NET 2.0代码(C#和C ++)。我开发和安装在Windows XP SP2。

我创建的InstallShield项目(称之为"MyClient.ISM")从MSI由以前的团队提供反向工程了。他们的配置是现在同样的。

然后我配置的InstallShield制作的MSI。这种内置,而不会出现错误。然而,当我尝试运行我的微星它失败有两个

“错误1001 InstallUtilLib.dll:未知错误”

对话框,然后成功地背出它所做的更改。然后我跑MyClient.MSI与msiexec命令。例如。

msiexec /lvx C:\inst_server.log /i "C:\MyClient.MSI"

看来,这个问题是由于2769 error。从由此产生的日志文件中的错误位置如下:

DEBUG: Error 2769: Custom Action _A11801EAD1E34CFF981127F7B95C3BE5.install 
did not close 1 MSIHANDLEs.

这个自定义操作尝试安装.NET服务。所以,我当时去了InstallShield和删除所有自定义操作(安装,卸载,提交和回滚以及相关的SetProperty的)和建造和安装一次。这个工作,但已不再安装的服务。我现在需要安装使用一个InstallShield方法,它的工作原理这些.NET服务。

.net windows service windows-installer installshield
2个回答
0
投票

我有错误1001也是如此,在2009年的InstallShield MSI基本项目。试着增加自动生成_isconfig.xml的支持文件\语言独立节点。这将确保正确的CLR火起来时,一个.NET相关的行动,如InstallerClass调用。

在我的情况_isconfig.xml内容有参考.NET 2.0运行,但它可能是指1.0 \ 1.1以及。

<?xml version="1.0"?>
<configuration>
    <startup>
        <supportedRuntime version="v2.0.50727"/>
    </startup>
</configuration>

参见:Q108690: INFO: Consuming A Merge Module Created Cith Microsoft Visual Studio .NET 2003 Or 2005


0
投票

我看到这是一个老问题,但认为我给它与它万一有人需要帮助一展身手。

从我观察到,一切错误1001的都涉及到.NET框架。

首先,我会确保你正在建设一个Setup.exe引导程序与您的MSI。使用InstallShield发布向导来做到这一点,一定要包括你的应用程序中的引导程序需要.NET Framework的版本。这可能是因为您的测试机没有安装.NET Framework所需的版本。

你提到的自定义操作是在生成过程中的InstallShield自动生成。它创造了包装自定义操作中调用安装程序类的方法,您的组件。在你的情况,这是你的组件的安装程序类之一的.install方法。

如果你确保你正确地部署.NET Framework和你还有一个问题,考虑在组装调试安装程序类。 (点击此处查看更多信息:http://www.hanselman.com/blog/BackToBasicsUsingFusionLogViewerToDebugObscureLoaderErrors.aspx

© www.soinside.com 2019 - 2024. All rights reserved.