Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wix SqlDatabase创建2014 LocalDb错误_Wix_Localdb - Fatal编程技术网

Wix SqlDatabase创建2014 LocalDb错误

Wix SqlDatabase创建2014 LocalDb错误,wix,localdb,Wix,Localdb,我有一个Wix工具集项目,需要在现有的SQLServer2014 LocalDb安装中安装一个数据库,但我一点都没有成功。我在SO以及其他网站上搜索了大量可能适用的示例或建议。到目前为止,我还没有在我的项目中找到任何有效的方法 SqlServer本地数据库已安装在系统上,可以从SQLSMGMT Studio进行访问。所有系统数据库都按预期显示,我可以在Mgmt Studio中创建一个新数据库 作为测试包含的文本文件确实正确安装在预期文件夹中 我收到的错误取决于我在SqlDatabase元素中定义

我有一个Wix工具集项目,需要在现有的SQLServer2014 LocalDb安装中安装一个数据库,但我一点都没有成功。我在SO以及其他网站上搜索了大量可能适用的示例或建议。到目前为止,我还没有在我的项目中找到任何有效的方法

SqlServer本地数据库已安装在系统上,可以从SQLSMGMT Studio进行访问。所有系统数据库都按预期显示,我可以在Mgmt Studio中创建一个新数据库

作为测试包含的文本文件确实正确安装在预期文件夹中

我收到的错误取决于我在SqlDatabase元素中定义的选项

从安装程序日志:
操作11:46:34:创建文件夹。创建文件夹
CreateFolders:文件夹:C:\Check\Database\
CreateFolders:文件夹:C:\Check\Database\
操作11:46:34:安装文件。复制新文件
安装文件:文件:TestFile.txt,目录:C:\Check\Database\,大小:19
动作11:46:34:创建数据库。创建数据库
CreateDatabase:错误0x80004005:无法创建SQL数据库,但继续错误:未知错误,数据库:检查
行动11:46:51:注册产品。注册产品

此安装的wxs文件:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util='http://schemas.microsoft.com/wix/UtilExtension'
xmlns:sql='http://schemas.microsoft.com/wix/SqlExtension'>
<Product Id="*" Name="Ach Check Database Installation" Language="1033" Version="1.0.0.0" Manufacturer="ACH Solutions" UpgradeCode="3828eaf7-528f-4006-9169-27bed44e79fe">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
    <MediaTemplate EmbedCab="yes"/>
    <Feature Id="CheckDb" Title="Check Database" Description="The Check Database" ConfigurableDirectory="INSTALLDIR" Level="1">
        <ComponentGroupRef Id="DatabaseComponents" />
    </Feature>
    <UIRef Id="WixUI_Mondo" />
</Product>  
<Fragment>
  <Directory Id="TARGETDIR" Name="SourceDir">
    <Directory Id="INSTALLDIR" Name="CheckDir" >
      <Directory Id="DatabaseFolder" Name="Database" />
    </Directory>
  </Directory>
</Fragment>
<Fragment>    
    <ComponentGroup Id="DatabaseComponents" Directory="DatabaseFolder">
        <Component Id='SqlComponent' Guid='53234257-65F1-4D58-B2CA-90308EC102FF'>
            <CreateFolder />
            <File Id="file_TestFile.txt" Source="E:\TestFile.txt"/>
        </Component>
        <Component Id="sql_SqlDatabase" Guid="B4D9CB63-B740-4860-89B6-1209D9A1A18E">
             <CreateFolder/>
             <sql:SqlDatabase Id='SqlDatabase'
                    Database='Check'
                    CreateOnInstall='yes'
                    Server='localhost\(localdb)\MsSqlLocalDb'
                    DropOnUninstall='no'
                    ContinueOnError='yes'>
                <sql:SqlFileSpec Id='sql_CheckDatabase' Filename='CheckDatabase.mdb' Name='CheckDatabase' Size='30MB' />
               <sql:SqlLogFileSpec Id='sql_CheckDatabase_Log' Filename='CheckDatabase_Log.ldb' Name='CheckDatabaseLog' Size='3MB' />
            </sql:SqlDatabase>
        </Component>      
    </ComponentGroup>
</Fragment>  
</Wix>

以前有没有人遇到过这个问题或类似的问题?解决办法是什么

我欢迎任何可能有助于这方面的建议

谢谢,

Eugene

我认为
Server
属性应该是
'(localdb)\MsSqlLocalDb'

还要确保在运行安装程序时LocalDB实例已存在,并且已与运行安装程序的用户共享。 出于测试目的,您还可以尝试使用命名管道而不是服务器名称。要获取实例管道的名称,请在命令行中运行以下命令:

sqllocaldb info MsSqlLocalDb

我认为
服务器
属性应该是
'(localdb)\MsSqlLocalDb'

还要确保在运行安装程序时LocalDB实例已存在,并且已与运行安装程序的用户共享。 出于测试目的,您还可以尝试使用命名管道而不是服务器名称。要获取实例管道的名称,请在命令行中运行以下命令:

sqllocaldb info MsSqlLocalDb

WiX不支持本地数据库连接

必须有人更新dutil以使用最新的SQL Server本机客户端,7年后似乎没有人更新过


另一种方法是为SQL处理编写自己的自定义操作。如果您通过电子邮件向我发送请求,我可以提供一些。WiX不支持localdb连接

必须有人更新dutil以使用最新的SQL Server本机客户端,7年后似乎没有人更新过


另一种方法是为SQL处理编写自己的自定义操作。如果您通过电子邮件向我提出请求,我可以提供一些。

谢谢您的建议。我应该解释一下,我已经尝试了我能想到的每一种服务器/实例组合。包括服务器='(localdb)\MsSqlLocalDb“,服务器='localhost'实例=”(localdb)\MsSqlLocalDb,等等。我想我可以安装物理数据库文件,然后从脚本创建表。看起来这可能是本地数据库的发展方向。再次感谢您的回答。谢谢您的建议。我应该解释一下,我已经尝试了我能想到的每一种服务器/实例组合。包括Server='(localdb)\MsSqlLocalDb,“Server='localhost'Instance=“(localdb)\MsSqlLocalDb”等。我想我可以安装物理数据库文件,然后从脚本创建表。似乎这可能是使用本地数据库的方式。再次感谢您的回答。