Исходя из многозначной трассы .MSI. Я создал .msi с помощью VisualStudio 2008.Понимание смысла .MSI подробный след - запуск CustomAction
Вот фон, на то, что я пытаюсь сделать: http://xmlpreprocess.codeplex.com/Thread/View.aspx?ThreadId=79454
Цель состоит в том, чтобы запустить программу под названием XmlPreprocess.exe похожа на это: xmlpreprocess.exe /x:"SettingsFileGenerator.xml "/i:"web.config"/e: QA/v
The/x: parm происходит из одной из форм моего интерфейса пользователя, а значение/e: происходит от выбора из четырех переключателей.
Я установил свойство "InstallerClass" на Ложное, и имущества "CustomActionData" в: /х: "[SettingsFile]" /i:"[TARGETDIR]web.config»[CUSTOMSETTINGS]/е: [ENVIRONMENTBUTTON] и я оставляю свойство «Аргументы» пустым.
Вот что говорит мне трасса. Похоже, мои пармы идут в соответствующие места (я выбрал «QA» из кнопки Radio). Ошибка та же, что и на экране графического интерфейса - «Программа, запущенная как часть настройки, не завершилась так, как ожидалось. Обратитесь к вашему персоналу службы поддержки или поставщику пакетов.« Я не уверен, что ErrorIcon информация - это просто шум, или если это актуально.
MSI (s) (A4:58) [10:46:09:130]: Executing op: CustomActionSchedule(Action=_78D3A615_0FDF_491D_8BD0_4AA0A0DAE3C2,ActionType=3090,Source=C:\inetpub\wwwroot\TFBIC.RCT.WCFWebServicesSetup\XmlPreprocess.exe,,CustomActionData=/x:"c:\Source\TFBIC.RCT.BizTalk\TFBIC.RCT.BizTalk.Deployment\EnvironmentSettings\SettingsFileGenerator.xml" /i:"C:\inetpub\wwwroot\TFBIC.RCT.WCFWebServicesSetup\web.config" /e:QA)
MSI (s) (A4:58) [10:46:09:728]: Note: 1: 1722 2: _78D3A615_0FDF_491D_8BD0_4AA0A0DAE3C2 3: C:\inetpub\wwwroot\TFBIC.RCT.WCFWebServicesSetup\XmlPreprocess.exe 4:
MSI (s) (A4:58) [10:46:09:728]: Note: 1: 2262 2: Error 3: -2147287038
MSI (c) (E0:C8) [10:46:09:763]: Note: 1: 2262 2: Error 3: -2147287038
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 1722. There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor.** Action _78D3A615_0FDF_491D_8BD0_4AA0A0DAE3C2, location: C:\inetpub\wwwroot\TFBIC.RCT.WCFWebServicesSetup\XmlPreprocess.exe, command:
MSI (s) (A4:58) [10:46:11:630]: Note: 1: 2262 2: Error 3: -2147287038
MSI (s) (A4:58) [10:46:11:630]: Product: TFBIC.RCT.WCFWebServices -- Error 1722. There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor. Action _78D3A615_0FDF_491D_8BD0_4AA0A0DAE3C2, location: C:\inetpub\wwwroot\TFBIC.RCT.WCFWebServicesSetup\XmlPreprocess.exe, command:
Action ended 10:46:11: InstallExecute. Return value 3.
MSI (s) (A4:58) [10:46:11:633]: User policy value 'DisableRollback' is 0
MSI (s) (A4:58) [10:46:11:633]: Machine policy value 'DisableRollback' is 0
Примечание: получил вышеупомянутый след, делая это:
Msiexec/я "TFBIC.RCT.WCFWebServicesSetup.msi"/L * V "C: \ Logs \ WebServiceInstall.log"
Обновление: основываясь на комментариях ниже - XmlPreprocess.exe (мой CustomAction) возвращает ненулевой код возврата. Итак, как я могу отладить это? Мне нужно увидеть результаты, которые обычно находятся в окне команд.
Обновление 01/07: Похоже, что отлаживать невозможно, не видя выхода программы - это то, что мне действительно нужно. Когда установщик выдает ошибку, я могу видеть файлы в этом каталоге, пока не нажмем кнопку «ОК», и он удалит их все. Я иду в командную строку, введите xmlpreprocess.exe, затем скопируйте/вставьте одну и ту же строку из журнала выше "/x:"c:\Source\TFBIC.RCT.BizTalk\TFBIC.RCT.BizTalk.Deployment\EnvironmentSettings\SettingsFileGenerator .xml "/i:"C:\inetpub\wwwroot\TFBIC.RCT.WCFWebServicesSetup\web.config"/e: QA ", и он работает нормально.
Я вижу точку Райана о недостающем файле, спасибо за это. Но могут быть десятки потенциальных ошибок, которые должны быть четко отображены на выходе программы XmlPreprocess. Наверняка есть какой-то вид выхода?
Два потенциальных отсутствующие файлы не являются. 1) сам web.config (это есть) 2) наименование файла пользователь вводит в
Насколько я могу судить, нет способ проверки того, что пользователь напечатал действительное имя файла, и в диалоговых окнах установки нет «сборщика файлов». Верный? или нет?
Так что, даже если у пользователя было неправильное имя файла, мне нужно дать ему лучшее сообщение, чем «Программа, запущенная как часть настройки, не завершилась так, как ожидалось. Обратитесь к вашему персоналу службы поддержки или поставщику пакетов."
Может быть, я должен написать свою собственную C# обертки для XmlPreprocess и назвать его, а затем перехватить вывод и читать это ???
Спасибо, забыл о предыдущем вопросе, который я опубликовал, потому что я думал, что этот след станет панацеей. Вероятно, я попытаюсь использовать альтернативный подход, включающий веб-службы в BizTalk Deployment Framework (BTDF), поскольку они будут развернуты на том же сервере одновременно. Раньше я делал некоторые инсталляторы с NSI, но это первая «причудливая» установка, которую я пробовал с помощью встроенных инструментов Microsoft Visual Studio (не слишком впечатлен). – NealWalters
Для тех, кто в мире BizTalk, обсудим, что я буду пытаться: http://biztalkdeployment.codeplex.com/WorkItem/View.aspx?WorkItemId=5675 – NealWalters
Исправление, это NSIS (а не NSI). http://nsis.sourceforge.net/Main_Page – NealWalters