我使用的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服务。
我有错误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
我看到这是一个老问题,但认为我给它与它万一有人需要帮助一展身手。
从我观察到,一切错误1001的都涉及到.NET框架。
首先,我会确保你正在建设一个Setup.exe引导程序与您的MSI。使用InstallShield发布向导来做到这一点,一定要包括你的应用程序中的引导程序需要.NET Framework的版本。这可能是因为您的测试机没有安装.NET Framework所需的版本。
你提到的自定义操作是在生成过程中的InstallShield自动生成。它创造了包装自定义操作中调用安装程序类的方法,您的组件。在你的情况,这是你的组件的安装程序类之一的.install方法。
如果你确保你正确地部署.NET Framework和你还有一个问题,考虑在组装调试安装程序类。 (点击此处查看更多信息:http://www.hanselman.com/blog/BackToBasicsUsingFusionLogViewerToDebugObscureLoaderErrors.aspx)