2011-07-29 187 views
0

我得到一个奇怪的错误,当我运行通过BTSTask生成的MSI:BTSTask安装程序 - Windows安装程序错误1001

要生成MSI:

BTSTask ExportApp /ApplicationName:MyBizTalkApp /Package:MyBizTalkApp.msi 

当我运行安装程序,我得到这样的:当我从BizTalk管理员控制台导出MSI,然后运行它

Weird installer error

也会发生这种情况。

我创建了msiexec日志文件。其中,出现此错误的线条似乎是:

DEBUG: Error 2835: The control ErrorIcon was not found on dialog ErrorDialog 
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2835. The arguments are: ErrorIcon, ErrorDialog, 
Error 1001. Error 1001: An error occurred while attempting to install the BizTalk application: A file load exception occurred while attempting to install the assembly into the Global Assembly Cache. This error may occur if the assembly is delay signed, or if assembly was renamed after creating/signing. 
The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047) 
MSI (s) (2C!40) [15:58:01:321]: 
MSI (s) (2C:3C) [15:58:01:362]: Leaked MSIHANDLE (26) of type 790531 for thread 7232 
MSI (s) (2C:3C) [15:58:01:411]: Note: 1: 2769 2: _4804EF1F_F198_428B_A6B1_B30276127E0A.install 3: 1 
DEBUG: Error 2769: Custom Action _4804EF1F_F198_428B_A6B1_B30276127E0A.install did not close 1 MSIHANDLEs. 
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2769. The arguments are: _4804EF1F_F198_428B_A6B1_B30276127E0A.install, 1, 
CustomAction _4804EF1F_F198_428B_A6B1_B30276127E0A.install returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox) 
MSI (s) (2C:3C) [15:58:01:619]: Closing MSIHANDLE (25) of type 790536 for thread 7776 
Action ended 15:58:01: InstallFinalize. Return value 3. 

编辑:在MSI的组件都不是延迟签名或已重命名。我用sn -vf检查了它们,它们都是有效的。

EDIT2:这种情况我所有的服务器(Win2k8 R2)

任何帮助非常赞赏。

+0

你有看到这个吗? - http://blogical.se/blogs/mikael_sand/archive/2010/03/22/pipelines-will-only-go-far-aka-length-of-pipeline-names.aspx – Fabio

回答

1

MSI正试图在GAC中安装dll。为此,必须使用强名称密钥对dll进行签名,并且签名后dll的名称一定不能更改。

另一种可能性是安装MSI的进程不允许将dll添加到GAC。 MSI安装在Windows安装程序服务下运行,检查该服务的身份。

下一种可能性是,其中一个dll的名称带有特殊字符。尝试手动将dll添加到gac。

+0

没有装配在MSI延迟签名或重新命名。我用sn -vf检查了它们,它们都是有效的。 –

+0

Windows安装程序服务正在本地系统帐户下运行。 –

+0

当我们通过BizTalk管理器导入MSI文件时,这些DLL全部进入GAC。这证明实际组件没有问题。 –