SQL Server setup.exe в пользовательских MSI вызывает StackOverflowException - PullRequest
0 голосов
/ 31 октября 2011

Я пытаюсь создать установщик MSI, который также устанавливает SQL Server (если у пользователя есть файл disk / iso).

Как это должно работать:

  • он запускает пакетный файл, и пакетный файл находит файл setup.exe на любом диске.
  • Пакетный файл принимает 2 аргумента, расположение файла конфигурации и каталог установки MSI
  • Затем он ищет файл setup.exe и запускает его вместе с файлом конфигурации, выполняя автоматическую установку.

Аргументы кажутся совершенно такими же, как и я.

@echo off
::this file searches for the setup.exe and then installs the server.
::ARGUMENTS:Complete Path to the Configuration File
 ::ATTENTION: this will need to search for a more unique file in the future!
 ::loop through each letter for a drive
 for %%A in (D E F G H I J K L M N O P Q R S T U V W X Y Z) Do ( 
::check if file exists, send any error messages to NUL, destroying it(e.g. no disk      in drive) and installif found
DIR  "%%A:/setup.exe" 1>NUL 2>&1 && call:install %%A %1 %2

::if we reach here the file ahsn't been found
if %%A == Z (
    @echo Please insert the Microsoft SQL Server 2008 R2 disk and try again.
    pause
    exit
)
)
 :install
net user grp-db ..grp.. /add
echo Installing SQL Server 2008 R2 with %~2 
date/t  
time /t
::"%~1:\setup.exe" /ConfigurationFile="%~2"
DIR "%~2"
date/t
time /t
pause
echo Creating ODBC data source.. with %~3
::"%~3"ODBCCONF.exe CONFIGSYSDSN "SQL Server" "DSN=GRP_DSN | Description=GRP Data         Source | SERVER=(local) | Trusted_Connection=Yes"
exit
goto:eof

Запуск командного файла из командной строки работает отлично, как и ожидалось, но в MSI это вызывает StackOverflowException. Проверка Сводного файла в каталоге SQL говорит

Пользователь отменил операцию. Тип исключения: Microsoft.SqlServer.Chainer.Infrastructure.CancelException.

Есть ли у кого-нибудь идеи, с чего начать?

1 Ответ

0 голосов
/ 31 октября 2011

Похоже, что существует конфликт между установкой SQL Server и процессом MSI.

Вместо использования BAT для установки SQL Server, вы можете попробовать добавить его в качестве предварительного условия для MSI:

...