Database Wix是否可以静默地不覆盖数据库

Database Wix是否可以静默地不覆盖数据库,database,installation,wix,Database,Installation,Wix,Wix显然可以提示/告诉用户数据库存在,并让用户选择覆盖或取消安装。不幸的是,用户无法指定“不覆盖”并继续安装 因此,Wix可以不重写数据库吗?如果数据库存在,只需忽略并执行下一条指令 如果没有,是否有其他方法来实现需要重新安装并且数据库已经就位的事实 当前我的Wix片段如下所示: <Fragment> <ComponentGroup Id="COMPG_MyProductDatabase" Directory="TARGETDIR"> <Com

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>

将数据库创建移动到SQL脚本中,然后使用SQL语句执行条件逻辑。将SqlDatabase元素更改为连接到“master”以使其工作