当我尝试使用WIX安装数据库时出现错误0x80004005

时间:2016-09-15 15:54:59

标签: sql-server database wix

我正在尝试使用WIX安装数据库。

我已经在Windows7(32位)上安装了SQL Server 2008 express。在此安装上,启用了TCP / IP,SQL Server服务正在运行。

我正在为SQL Server使用SQL Server和Windows身份验证。我在代码中尝试了两种 - 我在组件中添加了一个用户。

代码非常基础:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
     xmlns:sql="http://schemas.microsoft.com/wix/SqlExtension">
    <Product Id="*" Name="NewDatabaseInstaller" Language="1033" 
             Version="1.0.0.0" Manufacturer="My Company" 
             UpgradeCode="17ef693b-3ab5-4788-a6b5-70eeabc13497">
        <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
        <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
        <MediaTemplate EmbedCab="yes" />
        <Feature Id="ProductFeature" Title="NewDatabaseInstaller" Level="1">
            <ComponentGroupRef Id="ProductComponents" />
        </Feature>
    </Product>
    <Fragment>
        <Directory Id="TARGETDIR" Name="SourceDir">
            <Directory Id="ProgramFilesFolder">
                <Directory Id="INSTALLFOLDER" Name="NewDatabaseInstaller" />
            </Directory>
        </Directory>
    </Fragment>
    <Fragment>
        <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
            <Component Id="cmpSqlDatabase" Guid="{F950605D-AA59-43E6-AB19-9452F6BEC649}" KeyPath="yes">
                <sql:SqlDatabase Id="sqlDatabase_MyDatabase" Server="localhost"
                     Instance="MSSQLSERVER" Database="MyDatabase"
                     CreateOnInstall="yes" DropOnUninstall="yes"
                     ContinueOnError="no" />
            </Component>
        </ComponentGroup>
    </Fragment>
</Wix>

我通过在管理工作室中点击此查询来获得实例名称:

SELECT @@servicename

然而,我收到错误:

  

CreateDatabase:错误0x80004005:无法创建数据库:'MyDatabase',错误:未知错误
  错误26201.错误-2147467259:无法创建SQL数据库:MyDatabase,错误详细信息:未知错误   MSI(s)(FC!74)[17:43:27:786]:产品:测试 - 错误26201.错误-2147467259:无法创建SQL数据库:MyDatabase,错误详细信息:未知错误。

     

CustomAction CreateDatabase返回实际的错误代码1603(请注意,如果在沙箱内发生翻译,这可能不是100%准确)
  行动结束17:43:27:InstallFinalize。返回值3.

我错过了什么吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我发现了我的问题。 我为自己的错误感到羞耻:我放了一个实例

  

实例=&#34; MSSQLSERVER&#34;

我不需要它。

我认为是
  

SELECT @@ servicename

所以,我不知道什么时候需要它......有人知道吗?

谢谢严的帮助!