2

我有一个由 ClickOnce 安装的 winform 应用程序,默认情况下我需要能够在 sqlexpress 中启用远程连接。

另外,我需要确保本地用户可以访问 SQL 实例。如何编辑清单文件?

我的应用程序是合并复制拓扑的一部分。我继承了 DAL,直到我更改它,由于 SProc 的限制,我无法切换到 SQL CE。

SQL Express 是 ClickOnce (able) 并且是 VS2008 中的默认设置作为先决条件。

下面是 SQL Express Bootstrapper 包的 Product.xml。我怎样才能修改它来完成我需要的?有没有其他人不得不修改这个? 这是一个例子

<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>

我感谢大家有时间。

4

3 回答 3

1

SQL Express Edition 仍然是一个服务器类数据库。它始终作为服务运行,并且像任何服务器级数据库一样喜欢大量资源。对于本地桌面应用程序来说,这并不是一个很好的选择。

如果您需要单用户数据库,请使用 SQL Server Compact Edition、Sqlite 甚至 Access 之类的东西。如果您安装了一个桌面应用程序只是发现它拖了一个完整的 sql server 安装,我怀疑您会感激它。

于 2009-06-04T21:14:00.773 回答
0

SQL Server 是一项服务。似乎理论上可以通过单击安装服务,请参见此处此处

我怀疑通过单击安装 SQL Express 是不可能的,因为它是一种部署沙盒应用程序的技术。SQL Server 运行接近金属,不太可能在沙箱中工作。

SQL Compact 是另一回事,它是使用其数据库部署单击一次应用程序的更合适的方式。

或者让应用程序引用另一台服务器上的数据库。

编辑:如果我把你的问题全弄错了(这是在已经有 SQL Express 的客户端工作站上单击一次应用程序),你需要以这种方式启用远程连接。有一些证据表明可以使用 SAC 工具以编程方式执行此操作。

于 2009-06-04T21:14:27.777 回答
0

如果你的 package.xml 没有发挥作用,并且你想要一个更简单的桌面解决方案,firebird 可能是你的一个选择,有一个关于从 sql server 转换的 PDF,存储过程可以保留,这样。如果我将所有存储过程都转换为 Linq,我会发疯的,更不用说测试了……转换时要注意水晶报告或其他从服务器读取数据的 3rd 方实用程序。需要概念工作的证明。但是已经部署并且现在看到它甚至在 W7 的新设置上都失败了,我同意这里的观点。本地数据库也不适合我们,因为我们的外围工具是硬编码的。\并且它需要 (localdb)\

于 2012-08-29T08:56:46.020 回答