Wixは明らかに、データベースが存在することをユーザーに促し/通知し、インストールを上書きするかキャンセルするかをユーザーに選択させることができます。残念ながら、ユーザーは「上書きしない」ように指定してインストールを続行することはできません。
したがって、Wixはサイレントにデータベースを上書きできませんか?データベースが存在する場合は、無視して次の命令に進んでください。
そうでない場合は、再インストールを行う必要があり、データベースがすでに配置されているという事実を実現する別の方法はありますか?
現在の私のWixフラグメントは次のようになります:
<Fragment>
<ComponentGroup Id="COMPG_MyProductDatabase" Directory="TARGETDIR">
<Component Id="COMPG_MyProductDatabase.sql" Guid="{...}">
<File Id="FILE_MyProductDatabase.sql" Source="..\MyProduct.Cache.Database\MyProduct.Deployment.sql" Name="MyProduct.Deployment.sql" KeyPath="yes" Checksum="yes"/>
</Component>
<Component Id='COMP_MyProductDatabase' Guid='{...}'>
<CreateFolder/>
<sql:SqlDatabase Id='DB_MyProductDatabase' Database='MyProduct' Server='[PROP_DATABASESERVERNAME]'
CreateOnInstall='yes' DropOnUninstall='no' ContinueOnError='yes' ConfirmOverwrite='yes'>
<sql:SqlScript Id='SQL_MyProductDatabase' BinaryKey='FILE_MyProductDatabase' ExecuteOnInstall='yes' />
</sql:SqlDatabase>
</Component>
</ComponentGroup>
<Binary Id='FILE_MyProductDatabase' SourceFile='..\MyProduct.Cache.Database\MyProduct.Deployment.sql' />
</Fragment>