msi жалуется, что не может запустить ошибку DLL 1723 (1157) - PullRequest
1 голос
/ 19 января 2012

Я создаю образец MSI. Я использую пользовательское действие C ++. Я могу установить MSI на Windows 7 32bit. Но я не могу установить его на Windows Server 2008 64bit.

Следующий код:

 <Binary Id="BinaryId.dll"
       SourceFile="Test.dll" />

<CustomAction Id="TestFunc" BinaryKey="BinaryId" DllEntry="TestFunc"
              Execute="immediate" Return="check"  />

<InstallExecuteSequence>
  <Custom Action="TestFunc" Before="InstallInitialize" Overridable="yes">1</Custom>
</InstallExecuteSequence>

Я получаю следующую ошибку из журналов MSI:

 Invoking remote custom action. DLL: C:\Windows\Installer\MSI84EB.tmp, Entrypoint: MSI (s) (8C:30) [01:28:17:180]: Doing action: TestFunc
MSI (s) (8C:30) [01:28:17:180]: Note: 1: 2205 2:  3: ActionText 
Action start 1:28:17: TestFunc.
MSI (s) (8C:A0) [01:28:17:184]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI8E90.tmp, Entrypoint: TestFunc
CustomAction TestFunc returned actual error code 1157 (note this may not be 100% accurate if translation happened inside sandbox)
MSI (s) (8C:30) [01:28:17:218]: Note: 1: 1723 2: TestFunc3: TestFunc4: C:\Windows\Installer\MSI8E90.tmp 
MSI (s) (8C:30) [01:28:17:218]: Note: 1: 2205 2:  3: Error 
MSI (s) (8C:30) [01:28:17:218]: Note: 1: 2228 2:  3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1723 
MSI (c) (1C:74) [01:28:17:224]: Font created.  Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg


Error 1723. There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor.  Action TestFunc, entry: TestFunc, library: C:\Windows\Installer\MSI8E90.tmp 
MSI (s) (8C:30) [01:28:18:451]: Note: 1: 2205 2:  3: Error 
MSI (s) (8C:30) [01:28:18:451]: Note: 1: 2228 2:  3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709 
MSI (s) (8C:30) [01:28:18:451]: Product: TestCa -- Error 1723. There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor.  Action TestFunc, entry: TestFunc, library: C:\Windows\Installer\MSI8E90.tmp 

Большое спасибо за ваши ценные предложения и помощь, которые помогут решить эту проблему. :)

Ответы [ 2 ]

1 голос
/ 19 января 2012

Посмотрите, что вы используете метод пользовательских действий TestFunc. Ошибка 1157 означает, что:

Один из файлов библиотеки, необходимый для запуска этого приложения, не может быть найдено.

Возможно, вы используете библиотеку, которая недоступна в 64-разрядной версии Windows Server 2008, но доступна в 32-разрядной версии Windows 7

0 голосов
/ 20 января 2012

Написание пользовательских действий в управляемом .Net-коде непросто и требует ручного манипулирования файлами проекта. Если вы легко можете написать один и тот же код на VB Script, JavaScript или C ++, я бы рекомендовал использовать этот путь.

Вот учебник, который я использовал: Создание настраиваемого действия для WIX, написанного в управляемом коде без Votive .

...