客户端服务器安装包.NET

Dja*_*ous 7 .net sql sql-server client-server visual-studio-2010

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

应用程序的基本概述

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

对于:客户端安装 - > 现在我正在使用Click One Application

  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

问题 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 了,但我知道你可以用你的文本、你的徽标制作它的自定义版本...如果你想自动化,步骤之一就是运行你的代码(如果你提供的话)。您可以创建安装文件。只需创建 (Ctrl-Shift-A) 安装文件(就在那里),您可以在其中覆盖方法并运行您想要的内容(文件复制、调整、要求检查..)