我有一个由ClickOnce安装的winform应用程序,我需要能够在sqlexpress中默认启用远程连接。
另外,我需要确保本地用户可以访问SQL实例。如何编辑清单文件?
我的应用是合并复制拓扑的一部分。我继承了DAL,直到我改变它,由于SProc的限制,我无法切换到SQL CE。
SQL Express是ClickOnce(能够),并且是VS2008中的默认设置。
以下是SQL Express Bootstrapper软件包的Product.xml。如何修改它以实现我的需要?还有其他人不得不修改这个吗? Here is an example of this
<Command PackageFile="sqlexpr32.exe" Arguments="-q /norebootchk /qn reboot=ReallySuppress addlocal=all instancename=SQLEXPRESS SQLAUTOSTART=1 ADDUSERASADMIN=1" EstimatedInstalledBytes="225000000" EstimatedInstallSeconds="420">
<InstallConditions>
<BypassIf Property="SQLExpressInstalled" Compare="ValueEqualTo" Value="0"/>
<BypassIf Property="VersionNT" Compare="VersionLessThan" Value="5.1"/>
<FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>
<FailIf Property="Version9x" Compare="ValueExists" String="InvalidPlatformXP"/>
<FailIf Property="VersionNT" Compare="VersionLessThan" Value="5.1.2" String="InvalidPlatformXP"/>
<FailIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="Intel" String="InvalidPlatformArchitecture"/>
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="Success"/>
<ExitCode Value="1641" Result="SuccessReboot"/>
<ExitCode Value="3010" Result="SuccessReboot"/>
<ExitCode Value="50037" Result="Fail" String="MissingMSXml"/>
<ExitCode Value="50251" Result="Fail" String="MissingMSXml"/>
<ExitCode Value="50198" Result="Fail" String="InsufficientHardware"/>
<ExitCode Value="50236" Result="Fail" String="InsufficientHardware"/>
<ExitCode Value="50222" Result="Fail" String="InvalidPlatformOSServicePacks"/>
<ExitCode Value="70003" Result="Fail" String="InvalidPlatformOSServicePacks"/>
<ExitCode Value="50247" Result="Fail" String="InvalidPlatformIE"/>
<ExitCode Value="50248" Result="Fail" String="InvalidPlatformIE"/>
<ExitCode Value="70004" Result="Fail" String="AnotherInstanceRunning"/>
<ExitCode Value="70032" Result="Fail" String="BetaComponentsFailure"/>
<ExitCode Value="70033" Result="Fail" String="InvalidPlatformArchitecture"/>
<DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure"/>
</ExitCodes>
</Command>
我感谢大家的时间。
答案 0 :(得分:1)
SQL Express Edition仍然是服务器类数据库。它作为服务一直运行,并且像任何服务器级数据库一样喜欢大量资源。对于本地桌面应用来说,这不是一个好的选择。
如果您需要单个用户数据库,请使用SQL Server Compact Edition,Sqlite甚至Access。我怀疑你是否感激它,如果你安装了一个桌面应用程序,只是发现它拖动了一个完整的SQL Server安装程序。
答案 1 :(得分:0)
SQL Server是一项服务。理论上似乎可以通过点击一次安装服务,请参阅here和here。
我怀疑通过点击一次安装SQL Express是不可能的,因为它是一种用于部署沙盒应用程序的技术。 SQL服务器靠近金属运行,不太可能在沙盒中工作。
SQL Compact is another story并且是使用其数据库部署点击一次应用的更合适的方法。
或者让应用程序在另一台服务器上引用数据库。
编辑:如果我的问题全部错了(这是在已经有SQL Express的客户端工作站上点击一次应用程序),则需要启用远程连接this way。有一些证据表明SAC tool can be used可以通过编程方式进行。
答案 2 :(得分:0)
如果你的package.xml没有打球,你想要一个更简单的桌面解决方案firebird可能是一个选项,你可以从sql server转换PDF,存储过程可以保持这种方式。如果我将我所有的sprocs转换为Linq,我会发疯,更不用说测试...... 转换时请注意例如水晶报告或从服务器读取数据的其他第三方工具。需要概念工作的证明。但是已经部署并且现在看到它甚至在W7的新设置上都失败了我同意这里的观点。本地数据库对我们来说并不好看,因为我们的外围设备是硬编码的。\它需要(localdb)\