我有一个Wix Toolset项目,该项目需要将数据库安装到SqlServer 2014 LocalDb的现有安装中,但我一点都没有成功。我在SO以及其他网站上进行了广泛的搜索,以查找可能适用的示例或建议。到目前为止,我在我的项目中没有发现任何有效的方法。
SqlServer本地数据库已经安装在系统上,可以从SQL Mgmt Studio访问。所有系统数据库均按预期显示,我可以在Mgmt Studio中创建一个新数据库。
我作为测试包含的文本文件确实正确安装在预期的文件夹中。
我收到的错误因我在SqlDatabase元素中定义的选项而异。
从安装程序日志中:
操作11:46:34:CreateFolders。创建文件夹
CreateFolders:文件夹:C:\ Check \ Database \
CreateFolders:文件夹:C:\ Check \ Database \
操作11:46:34:InstallFiles。复制新文件
InstallFiles:文件:TestFile.txt,目录:C:\ Check \ Database \,大小:19
操作11:46:34:CreateDatabase。创建数据库
CreateDatabase:错误0x80004005:创建SQL数据库失败,但继续错误:未知错误,数据库:检查
操作11:46:51:RegisterProduct。注册产品
此安装的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>
有没有人遇到过这个问题或类似的事情?解决方案是什么?
我欢迎任何可能对此有所帮助的建议。
谢谢,
尤金
我相信Server
属性应该是公正的'(localdb)\MsSqlLocalDb'
。
还要确保在运行安装程序时LocalDB实例已经存在,并且已与运行安装程序的用户共享。为了进行测试,您还可以尝试使用命名管道代替服务器名称。要获取实例管道的名称,请在命令行中运行以下命令:
sqllocaldb info MsSqlLocalDb
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句