【问题标题】:BTSTask installer - windows installer error 1001BTSTask 安装程序 - Windows 安装程序错误 1001
【发布时间】:2011-08-23 23:07:25
【问题描述】:

我在运行 BTSTask 生成的 MSI 时遇到一个奇怪的错误:

要生成 MSI:

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

当我运行安装程序时,我得到了这个:

当我从 BizTalk 管理员控制台导出 MSI 然后运行它时,也会发生这种情况。

我创建了一个 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)

非常感谢任何帮助。

【问题讨论】:

标签: windows-installer biztalk


【解决方案1】:

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

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

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

【讨论】:

  • MSI 中的所有程序集都没有延迟签名或已重命名。我用 sn -vf 检查了它们,它们都是有效的。
  • Windows Installer 服务正在本地系统帐户下运行。
  • 当我们通过 BizTalk Administrator 导入 MSI 文件时,DLL 全部进入 GAC。这证明实际的程序集没有任何问题。
  • 同意程序集没有错。那么在 msi 中一定有一个动作会产生错误。
  • 感谢您的回复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多