4

2 つの SQL スクリプトがあります。1 つは新規インストール用で、もう 1 つは更新用です。このインストーラーがデータベースの存在を自動的にチェックするようにします。

擬似コード:

IF (database exists)
{
    call 'UpdateDatabase' script
}
ELSE
{
    call 'CreateDatabase' script
}

製品.wxs

<sql:SqlDatabase Id='SqlDatabase' Database='master' Server='.'
  CreateOnInstall='yes' DropOnUninstall='no' ContinueOnError='yes'>
  <sql:SqlScript Id='CreateDatabase' BinaryKey='CreateDatabase' ExecuteOnInstall='yes' />
  <sql:SqlScript Id='UpdateDatabase' BinaryKey='UpdateDatabase' ExecuteOnInstall='yes' />
</sql:SqlDatabase>
4

2 に答える 2

3

わかった。ですExecuteOnReinstall。期待どおりに動作します。

<sql:SqlDatabase Id='SqlDatabase' Database='master' Server='.'
  CreateOnInstall='yes' DropOnUninstall='no' ContinueOnError='yes'>
  <sql:SqlScript Id='CreateDatabase' BinaryKey='CreateDatabase' ExecuteOnInstall='yes' />
  <sql:SqlScript Id='UpdateDatabase' BinaryKey='UpdateDatabase' ExecuteOnReinstall='yes' />
</sql:SqlDatabase>
于 2012-06-28T16:43:28.557 に答える
1

現在、私が知っているビルトイン施設はありません。カスタム アクションを作成する必要があります。

データベースが存在するかどうかにかかわらず、カスタム アクションでプロパティを設定し、その値に基づいて条件チェックを実行し、それに応じてスクリプトを呼び出すことができます。

于 2012-06-08T03:32:35.177 に答える