0

SQL Serverをインストールする.msiインストーラを作成しようとしています(ユーザーにディスク/ isoファイルがある場合)。カスタムmsi内のSQL Server setup.exeによってStackOverflowExceptionが発生する

それがどのように動作するかを

は次のとおりです。

  • それは、バッチファイルを実行し、バッチファイルは、それがどのドライブにあるsetup.exeを検索します。
  • バッチファイルには、構成ファイルの場所とmsi
  • のインストールディレクトリの2つの引数が必要です。setup.exeが検索され、configファイルで実行され、サイレントインストールが実行されます。

引数はまったく同じ方法で実行しているようです。

@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。

誰かがこのアイデアから始めるというアイデアはありますか?

答えて

0

SQL ServerのインストールとMSIプロセスの間に競合があるようです。

代わりにSQL ServerをインストールするためのBATを使用しての、あなたはMSIのための前提条件として、それを追加してみてくださいすることができます

+0

は、はい、私はこの考えが、私を計画は、configファイルを使用して完全に自動的にユーザーにしてもらうことですが、今は2つのインストーラを実行することでトラブルが発生するように聞こえるようになります。 –

関連する問題