【问题标题】:How to create an SQL Server database using Wix如何使用 Wix 创建 SQL Server 数据库
【发布时间】:2012-07-12 14:39:09
【问题描述】:

我正在尝试创建一个将安装 SQL Server 数据库的 .msi。我有以下代码,但是当我在虚拟机上运行 .msi 时,数据库没有显示在 VM 上的 SQL Server Management Studio 中。我错过了什么?

<Directory Id="TARGETDIR" Name="SourceDir" ComponentGuidGenerationSeed="MYGUID-AEAC-4fdf-86D0-05B33BAD4550">      
     <Component Id="SqlScripts" Guid="MyGUID-A87F-42D2-B6E7-BD8790548625">

        <util:User Id="SQLUser" Name="User" Password="password" CreateUser="yes" UpdateIfExists="no"/>

           <sql:SqlDatabase Id="SQLDatabase" Database="MyDatabase" User="SQLUser" Server=".\SQLEXPRESS"
         CreateOnInstall="no" CreateOnUninstall="no" CreateOnReinstall="no" ConfirmOverwrite="no"
         DropOnInstall="no" DropOnReinstall="no" DropOnUninstall="no" ContinueOnError="yes">
           <sql:SqlScript Id="MyDatabase" BinaryKey="MyDatabase" ExecuteOnInstall="yes" ExecuteOnReinstall="no" ExecuteOnUninstall="no" ContinueOnError="no" Sequence="4"/>
        </sql:SqlDatabase>

        <!-- stops and restarts World Wide Web Publishing Service (W3SVC) during the install or uninstall -->
        <ServiceControl Id="ServiceControlWebSite" Name="W3SVC" Start="both" Stop="both" Wait="yes" />
     </Component>
  </Directory>

  <Binary Id="MyDatabase" SourceFile="myDatabase.sql"/>

  <Feature Id="Complete" Title="Setup" Level="1">         
     <ComponentRef Id="SqlScripts" />
  </Feature>

我不知道服务控制是什么,但我认为没有任何问题。

Wix 应该创建数据库还是脚本应该这样做?目前该脚本创建表并插入数据。我也尝试使用创建数据库的脚本,但没有任何反应。我怀疑是否执行了任何代码,因为没有创建任何内容。

当我在 SQL Server Management Studio 中单独运行脚本时,会创建数据库,这进一步增加了我对 Wix 代码是否正常工作的怀疑。

【问题讨论】:

    标签: sql visual-studio-2010 wix


    【解决方案1】:

    我总是设置 CreateOnInstall="yes",因为如果它不存在,它将为您创建数据库,或者如果它存在,它会给您一个参考。还要设置 ContinueOnError="no" 以便向用户显示任何错误。

    最大的潜在问题是您用来运行脚本的用户。它正在创建中,除非您授予它管理员权限(看起来您不是),否则它将没有所需的权限。我以 sa 身份运行我的 sql 脚本,然后创建一个受限访问用户供应用使用。

    至于服务控制,上面的评论告诉你它在做什么! ;)

    【讨论】:

      猜你喜欢
      • 2018-06-08
      • 1970-01-01
      • 2013-09-20
      • 2011-12-26
      • 2011-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-16
      相关资源
      最近更新 更多