2011-07-29 89 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。這證明實際組件沒有問題。 –