Установка MS SQL Server Express 2017 с помощью Inno Installer - PullRequest
0 голосов
/ 25 мая 2018

Я отчаянно пытаюсь установить SQL Server Express 2017 с помощью Inno Installer.В моем установщике я включаю извлеченные установочные файлы.Это означает, что я уже выполнил общий SQLEXPR_x64_ENU.exe, чтобы избежать приглашения «extract-temp-folder» во время работы моего установщика.

Я выполняю следующую команду в cmd:

{somePath}\SQLEXPR_x64_ENU\setup.exe /ACTION=Install /Q /SKIPRULES=RebootRequiredCheck /SUPPRESSPRIVACYSTATEMENTNOTICE=1 /IAcceptSQLServerLicenseTerms=1 /SECURITYMODE=SQL /SAPWD=secretPW /ConfigurationFile=ConfigurationFileExpr.ini

Установка успешна.

Но когда я делаю то же самое в моем InnoInstaller-файле, как это:

... [Files] Source: "SQLEXPR_x64_ENU\*"; DestDir: "{tmp}\SQLEXPR_x64_ENU"; Check: not SQLExpress_Check; Flags: recursesubdirs; [Run] Filename: "{tmp}\SQLEXPR_x64_ENU\setup.exe"; Description: "Installing SQL Server Express 2017..."; StatusMsg: "Installing SQL Server Express 2017..."; \ Parameters: "/ACTION=Install /Q /SKIPRULES=RebootRequiredCheck /SUPPRESSPRIVACYSTATEMENTNOTICE=1 /IAcceptSQLServerLicenseTerms=1 /SECURITYMODE=SQL /SAPWD=secretPW /ConfigurationFile=ConfigurationFileExpr.ini"; Check: not SQLExpress_Check; Flags: runascurrentuser; ...

Установщик SQL завершается неудачносо следующей ошибкой:

Exception type: System.MissingMethodException Message: Method not found: 'Void Microsoft.SqlServer.Chainer.Infrastructure.RoleService.Initialize(Microsoft.SQL.Chainer.Product.RolesType)'. HResult : 0x80131513 Data: DisableWatson = true Stack: at Microsoft.SqlServer.Configuration.BootstrapExtension.InitializeRoleServiceAction.ExecuteAction(String actionId) at Microsoft.SqlServer.Chainer.Infrastructure.Action.Execute(String actionId, TextWriter errorStream) at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.<>c__DisplayClasse.<ExecuteActionWithRetryHelper>b__b() at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(ActionWorker workerDelegate)

Это ошибка разрешения?Без понятия.На cmd-shell это работает, но не на InnoInstaller.

Заранее спасибо за ваши усилия и хорошего дня.

1 Ответ

0 голосов
/ 08 апреля 2019

Решение для меня предоставил Гэвин Ламберт на форуме Inno Setup :

Если вы [устанавливаете из каталога распакованных файлов], вам нужно использовать {sd}\shortnameкак DestDir (обычно в сочетании с deleteafterinstall) - вы не можете поместить файлы в {tmp} или любой другой подобный путь, так как файлы очень глубоко вложены, и установщик БД не может получить доступ к некоторым файлам, потому чтопуть слишком длинный.

...