问题:
我使用 Visual Studio 2012 和 InstallShield 为 Windows 服务创建了安装程序。
服务运行良好。
安装程序在我的开发机器(windows 8 64 位)和我的 XP 虚拟机(32 位)上运行良好。
但在 Windows Server 2008 R2 上,相同的安装程序会出现“错误 10001”。
没有进一步的信息。
事件日志中包含以下信息:
Product: DbBackupServiceSetup -- Error 1001.
(NULL)
(NULL)
(NULL)
(NULL)
(NULL)
the message resource is present but the message is not found in the string/message table
如果我手动安装:
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\InstallUtil.exe "D:\Program Files\Test\DbBackupService.exe"
然后它甚至在 Windows Server 2008 R2 上也能正常工作......
我已经创建了一个具有 32 位可执行文件的安装程序和一个具有 64 位可执行文件的安装程序,但是我在两者上都遇到了这个错误......
我尝试在启用日志记录的情况下执行 msi
msiexec /i "D:\Install\DISK1\DbBackupServiceSetup.msi" /Lv "D:\example.log"
日志文件中的第一个错误指示在这里:
Created Custom Action Server with PID 3932 (0xF5C).
MSI (s) (C0:74) [14:26:28:065]: Running as a service.
MSI (s) (C0:74) [14:26:28:080]: Hello, I'm your 32bit Elevated custom action server.
MSI (s) (C0!14) [14:26:33:681]:
MSI (s) (C0:E8) [14:26:33:681]: Leaked MSIHANDLE (16) of type 790531 for thread 3348
MSI (s) (C0:E8) [14:26:33:681]: Note: 1: 2769 2: _B384C869AD7BC0C39F5780609620645B.install 3: 1
Info 2769. Custom Action _B384C869AD7BC0C39F5780609620645B.install did not close 1 MSIHANDLEs.
CustomAction _B384C869AD7BC0C39F5780609620645B.install returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
Action ended 14:26:33: InstallFinalize. Return value 3.
MSI (s) (C0:F0) [14:26:33:697]: User policy value 'DisableRollback' is 0
MSI (s) (C0:F0) [14:26:33:697]: Machine policy value 'DisableRollback' is 0
我不明白。
相同的安装程序在其他机器上运行良好。
所有自定义操作都包含在 try-catch 中,系统帐户对文件系统具有完全访问权限,并且它不是网络共享。
并且使用 installutil 安装服务有效,所以它一定是安装程序本身的错误。
对我来说,它看起来像是在召唤
C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe "D:\Program Files\test\DbBackupService.exe"
代替
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\InstallUtil.exe "D:\Program Files\test\DbBackupService.exe"
因此得到糟糕的图像异常。
但是,如果是这种情况,我不明白为什么我同时使用 32 位和 64 位可执行文件会出现此错误...
按理说问题出在InstallShield本身...
哦,我正在使用远程桌面(mstsc.exe)连接到服务器,以防万一,我无法直接访问服务器,所以如果是 mstsc 问题,我无法尝试。