Я работаю с Installshield 2014 и 2011. Я использую основные обновления и сценарии автоматической сборки для обработки сборки. InstallShield - это отдельная сборка ver. для обоих.InstallShield Automation не может создать объект
Теперь все отлично работало с Installshield 2011 на серверах Windows 2003. Я мог бы использовать интерфейс автоматизации для открытия проекта, изменения кода продукта (для основного обновления), а затем сохранить его прямо перед установкой установщика.
Код таковой в VBS файл как таковой:
Dim oISM, oGUID
Set oGUID = CreateObject("InstallShield.GUID")
Set oISM = CreateObject("IswiAuto17.ISWiProject")
oISM.OpenProject strInstallShieldProjectFile
oISM.ProductCode = "{" & oGUID.CreateGUID() & "}"
oISM.SaveProject : oISM.CloseProject : set oISM = Nothing
Теперь мы модернизированных к окнам 2012 серверов и InstallShield 2014. Я проверил и в соответствии с InstallShield единственное изменение необходимо, так это номер версии (17 изменяется на 21).
Но теперь ничего не работает. Если взять код и положить его в его собственном файле VBS для тестирования и запустить его, я получаю это:
компонент ActiveX не может создать объект: «InstallShield.GUID»
Глядя на гугле я вижу это от запуска в режиме 64 бит .... но я не. Я запускаю подсказку cmd в 32-битном режиме. http://helpnet.flexerasoftware.com/installshield18helplib/AutomationInterface64Bit.htm
Я попытался назвать сценарий с: % WINDIR% \ SysWOW64 \ cmd.exe/с Cscript
как предложено здесь: How do I run a VBScript in 32-bit mode on a 64-bit machine?
и других местах. Это не сработало, поскольку я получил ту же ошибку.
Я попытался удалить эту строку, так как я уверен, что смогу создать дорожку другим способом и повторить ее.
Тогда я получил это, когда он пытается создать проект: Неизвестная ошибка во время выполнения: «CreateObject»
Еще раз Google придумал, и я проверил: https://community.flexerasoftware.com/showthread.php?189788-Automation-error
и пара других. Я попытался обеспечить регистрацию dll с помощью regsvr32, и он сказал, что он был успешным. Но после повторения он дал ту же ошибку.
Я попытался напрямую выполнить команду из документации InstallShield, чтобы не было ошибок орфографической ошибки, но снова такая же ошибка.
Я даже попытался переключая случае «ЮЗ», как указано здесь: Installshield Automation is failing while running vbscript with error unable to create object
Снова, хотя, та же ошибка.
Я также попытался переключиться на powershell, так как powershell намного легче отлаживать и читать.
PowerShell код прост и заключается в следующем:
$oIsm = new-object -comobject IswiAuto21.ISWiProject
$oISM.OpenProject("$file")
$oISM.ProductCode = "{" + [guid]::NewGuid() + "}"
$oISM.SaveProject(); $oISM.CloseProject(); $oISM = $null
Но это также не работает, несмотря на это говорят, что нужно: https://community.flexerasoftware.com/showthread.php?190769-Automation-using-Powershell http://blogs.flexerasoftware.com/installtalk/2011/01/getting-started-with-installshield-automation-and-powershell.html
Когда я использую 32 битный PowerShell я получаю эта ошибка:
новый объект: создание экземпляра COM-компонента с CLSID {78D393F9-76E3-438C-9CAB-6664EF5FE1F2} из IClassFactory не выполнено из-за следующая ошибка: 800a801d Исключение из HRESULT: 0x800A801D.
Если я запускаю только vbs без подсказки cmd, я также вижу ошибку 800A801D в всплывающем окне.
Как это исправить? Я бы хотел использовать powershell, но исправление vbs также помогло бы в этот момент. Я пробовал все, что мог, и Google говорит, что я делаю это правильно (32-разрядная powerhell/cmd, регистрация DLL, создание объекта и т. Д.).
Это было причиной. Когда мой менеджер установил его, он не установил интерфейс (только основные файлы). Это заставило главную dll существовать и регистрироваться, но ничего больше. Итак, когда я проверил, он утверждал, что все было хорошо, но под ним не было. Исправлена проблема с установкой и установкой интерфейса. Спасибо за помощь. :) –
Ваш прием. Не возражаете ли вы принять ответ? –