#installshield
#installshield
Вопрос:
Я использую интерфейс InstallShield 2011 Automation для создания своего установщика. Во время сборки файлы журнала создаются в папке MSI_English LogFiles.
Возможно ли перенаправить журнал на консоль. Это было бы более удобно для моего сервера сборки.
Ответ №1:
Простым ответом может быть использование iscmdbld.exe
вместо интерфейса автоматизации. Это уже отправляет сообщения на консоль.
Более сложным ответом должно быть использование событий состояния сборки (его пример VB приведен ниже). В частности, вы захотите обработать StatusMessage
событие. Обратите внимание, что вы захотите изменить экземпляры 21
, чтобы они соответствовали версии остальной части вашего сценария автоматизации.
Public WithEvents pISWiRelease As ISWiAuto21.ISWiRelease
Private Sub Foo()
Dim pISWiProject As IswiAuto21.ISWiProject
Set pISWiProject = CreateObject("IswiAuto21.ISWiProject")
pISWiProject.OpenProject "C:InstallShield 2014 ProjectsMy Project Name-1.ism", False
Set pISWiRelease = pISWiProject21.ISWiProductConfigs("Product Configuration 1").ISWiReleases("Release 1")
pISWiRelease.Build
pISWiProject.CloseProject
Set pISWiRelease = Nothing
Set pISWiProject = Nothing
End Sub
Private Sub pISWiRelease_ProgressIncrement(ByVal lIncrement As Long, pbCancel As Boolean)
' Place your code here
End Sub
Private Sub pISWiRelease_ProgressMax(ByVal lMax As Long, pbCancel As Boolean)
' Place your code here
End Sub
Private Sub pISWiRelease_StatusMessage(ByVal sMessage As String, pbCancel As Boolean)
' Place your code here
End Sub
Комментарии:
1. Любые предложения о том, как это будет работать с JScript? Не получается попасть туда, где он регистрируется как наблюдатель событий, но, вероятно, у меня нет опыта работы с VB.
2. В примере с VB это волшебство, связанное с начальной
WithEvents
строкой. В C общий метод называется точками подключения. В C # это события и делегаты. Некоторые поисковые запросы предполагают, что он может превратиться вattachEvent
илиaddEventListener
в JScript (что-то вродеpISWiRelease.attachEvent("StatusMessage", f)
), но я не знаком с тем, как именно это сделать. Надеюсь, это, по крайней мере, хорошие ключевые слова для ваших поисковых запросов!