Разобраться в подробном трассировке .MSI - запустить CustomAction

Имеет смысл из подробного следа .MSI. Я создал .MSI, используя VisualStudio 2008.

Вот предыстория того, что я пытаюсь сделать:http://xmlpreprocess.codeplex.com/Thread/View.aspx?ThreadId=79454

Цель состоит в том, чтобы запустить программу с именем XmlPreprocess.exe, подобную этой: xmlpreprocess.exe /x:"SettingsFileGenerator.xml "/i:"web.config" / e: QA / v

/ X: parm происходит из одной из моих форм пользовательского интерфейса, а значение / e: определяется четырьмя переключателями.

Я установил для свойства "InstallerClass" значение False, а для свойства "CustomActionData" -: / x: "[SETTINGSFILE]" /i:"[TARGETDIR]web.config "[CUSTOMSETTINGS] / e: [ENVIRONMENTBUTTON], и я покидаю свойство «Аргументы» пустые.

Вот что говорит мне след. Похоже, мои пармы собираются в соответствующие места (я выбрал «QA» из переключателя). Ошибка та же, что я вижу на экране графического интерфейса - это "Программа, запущенная как часть установки, завершилась не так, как ожидалось. Обратитесь в службу поддержки или к поставщику пакета.«Я не уверен, является ли информация 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 / i "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 и вызвать ее, затем перехватить вывод и прочитать его ???

Ответы на вопрос(2)

Ваш ответ на вопрос