我正在尝试使用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.
我错过了什么吗?
谢谢!
答案 0 :(得分:0)
我发现了我的问题。 我为自己的错误感到羞耻:我放了一个实例
实例=&#34; MSSQLSERVER&#34;
我不需要它。
我认为是SELECT @@ servicename
所以,我不知道什么时候需要它......有人知道吗?
谢谢严的帮助!