.net - 客户端服务器安装包.NET

标签 .net sql sql-server visual-studio-2010 client-server

我想这是每个客户端-服务器初学者都在寻找的一个基本问题:我开发了一个C#.NET Client-Server软件。

应用程序的基本概述

应用程序包含一个内置数据库,因此,如果服务器不可用,用户可以使用其本地系统可用的数据库。如果数据库在服务器上可用,则将使用服务器数据库。单击按钮即可使两个数据库同步。所以我有两个连接字符串,一个用于本地系统,另一个用于服务器。它们都是动态创建的。

对于:客户端设置 -> 现在我正在使用 Click One 应用程序

  1. 我的客户端系统使用本地数据库,我用它与我的应用程序一起安装。

问题 1:

我有一个基于 SQL Server Express 的数据库部署。我创建了一个带有 SQL Server 2008 等先决条件的 clickone 应用程序。当我安装 clickone 时,我的应用程序安装正确,没有任何错误,但在启动应用程序时,它给我错误,我的应用程序无法在 C 找到数据库:\Users\Xnor\AppData\Local\Apps\2.0\Data\N24R9574.9H1\V0Q1MX0C.0X9\....

我浏览了 stackoverflow,发现将我的 .mdf 复制到此位置可以解决我的问题。但为什么会出现这样的情况呢。为什么它不复制自己呢?

有没有办法将数据库永久附加到我的应用程序,以便我可以避免这种手动工作?

到处都只是将 .mdf 文件复制到该位置的说明,仅此而已。那么有没有什么可行的方法,也许如果可能并且建议将 .mdf 附加到资源中并可以从那里使用。寻求专家建议,这是实现这一目标的最佳方法。

<小时/>

对于服务器:

我用来安装 Microsoft SQL Server Management Studio Express,然后我用来为我的服务器创建数据库,然后 IT 用来与我的应用程序一起工作。

问题2

我怎样才能减少这些步骤。告诉非 IT 人员并教他们始终在服务器上安装 Microsoft SQL Server Management Studio Express,然后在其上创建数据库,然后将其连接字符串提供给应用程序以使其正常工作带来了很多问题。

<小时/>

所以我的基本要求就是在安装时给用户一个流畅的体验。因为负责安装的人都不是高大的极客。他们可以执行 Next Next Next 但他们不喜欢做这么多配置。有没有专业的方法可以做到这一点。我想这是客户端-服务器软件最重要的事情,我从来没有见过这样的软件要求你做这么多配置。

我不愿意使用Click-one Deployment,因为它看起来很不专业,而且我觉得它的功能非常有限。因此,请建议一些其他可以满足此要求的替代方案。

我也想知道这是一件非常重要的事情,而且我在谷歌和YouTube上没有找到现成的教程,而且我无法找到关于如何自动化这件事的正确方向,或者也许是一种减少步骤的方法。

我准备部署两种设置:一种用于客户端,一种用于服务器

如果需要任何其他信息,请告诉我。期待大力支持。问候。

最佳答案

问题 1: 将 SQL 数据库添加到应用程序 - 应该使用 Visual Studio 解决方案来完成此操作。
单击使用数据库的项目(或者更好的是,先为其创建一个文件夹),Ctrl+Shift+A>数据>本地数据库/基于服务的数据库。
那么您应该填充数据库,更改连接字符串等。
该项目将为您提供一个连接字符串,可以在安装中调整和更改,因为文件路径可能会有所不同。
这样,它将使用您的 clickonce 在项目安装中复制数据库。

注意:选择数据库类型(SDF 与 MDF)并不是一个难题。
如果您可以使用 MDF,因为它具有更好的性能、更好的功能,但需要本地安装 SQLExpress。

问题 2: 不需要 SSMS(Menegment Studio)或类似的东西。
现在,我倾向于认为您正在运行应用程序的服务器上安装数据库 - 您不应该这样做。使用专用的数据库服务器。
但是,对于您的答案,您可以做两件事来使其更好:
1. 您可以创建一个名为 model 的 SQL 数据库 - 这是数据库创建的理想选择,因为它将自身复制到新数据库,并使事情变得更容易。
然后,您的应用程序可以运行(在安装部分)SQLConnection.CreateDatabase,它将复制模型并根据您的需要创建数据库。
2. Yoy 可以迁移到更新的解决方案,例如使用 EntityFramework,您可以在其中开发类,而 EF 负责存储。

我已经有一段时间没有使用 Clickonce 了,但我知道你可以用你的文本、你的 Logo 制作它的定制版本...... 如果您想实现自动化,步骤之一就是运行您的代码(如果您提供的话)。您可以创建安装文件。只需创建(Ctrl-Shift-A)安装文件(就在那里),您可以在其中覆盖方法并运行您想要的内容(文件复制、调整、要求检查..)

关于.net - 客户端服务器安装包.NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18351696/

相关文章:

.net - 获取结果类型为自定义派生 UserPrincipal 的 AD 组的成员

SQL 如果存在则 "Yes' 否则 "No' 在新列中

sql - 在 Azure SQL 数据库上设置可信属性

sql-server - 在没有 SQL Server Management Studio 的情况下将数据库从我的开发 PC 移动到客户端 PC?

sql-server - SQL Server 注入(inject)

c# - 我如何将惰性与初始化程序一起使用?

c# - 嵌套循环的代码效率 c#

c# - 异步更新属性

mysql - 无论如何,返回 IN 值的默认结果

MySQL 显示具有 x 条记录的表