客户端服务器安装包.NET

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

应用程序的基本概述

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

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

  • 我的客户端系统使用一个本地数据库,用于与我的应用程序一起安装。
  • 问题1

    我有一个基于SQL Server Express的数据库部署。 我创建了一个像SQL Server 2008一样的先决条件的clickone应用程序。当我安装我的clickone时,我的应用程序正确安装,没有任何错误,但是在启动应用程序时,它给了我错误,我的应用程序无法在C:UsersXnorAppDataLocalApps2.0DataN24R9574.9H1V0Q1MX0C.0X9....

    我冲浪了stackoverflow,发现复制我的.mdf到这个位置将解决我的问题。 但为什么会发生这种情况。 为什么不复制它自己?

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

    无处不在,只需将.mdf文件复制到该位置即可。 那么有没有什么办法可以工作,也许如果可能的话,并且暗示.mdf会附加在资源中并且可以从那里使用。 寻找专家意见,实现它的最好方法。


    对于服务器:

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

    问题2

    我该如何采取这些措施。 正在告诉非IT人员并教他们在Microsoft SQL Server Management Studio Express上安装Microsoft SQL Server Management Studio Express ,然后在其上创建数据库,然后将其连接字符串提供给应用程序以使其工作带来许多问题。


    所以我的基本要求就是在安装时为用户提供流畅的体验。 当做装置的人不是一个高大的极客。 他们可以做Next Next Next但他们不喜欢做这么多配置。 有没有这样做的专业方式。 我猜这是客户端 - 服务器软件最重要的,我从来没有见过这样的软件要求你做这么多配置。

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

    此外,我想知道这是一件非常重要的事情,并且没有现成的教程,我可以在谷歌和YouTube上找到,而且我无法找到如何自动化此事的正确方向,或者可能是这样我就可以减少步骤。

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

    请让我知道是否需要其他信息。 期待着很大的支持。 问候。


    为了在客户端进行部署,我会重新考虑其本地数据库的策略。 问题在于,正如我所理解的那样,您在每台客户端上都使用SQL Server,并使用本地.mdf文件,而我认为这不仅仅是解决方案,更像是一个问题,因为它像任何普通的数据库服务器一样工作,伴随着它产生的所有头痛。 而且由于客户端不应该接收外部连接(如果我在这里错了,请纠正我),一个完整的服务器将是一个矫枉过正的问题。 我的想法是为客户端选择一个不同的数据库引擎:

  • SQLite将是我的首选。 它是一个嵌入式数据库引擎,它只是最简单的一个DLL,还有一些.NET包装器。 它将数据存储在您选择的文件中,并使用标准SQL语言访问它。 部署将像将更多的库复制到安装文件夹一样简单,这适合您所需的下一个/下一个/下一个安装过程。 缺点是它只支持SQL Server所具有的一部分功能,这对您的特定情况可能会也可能不成问题。
  • SQL Server Compact Edition非常相似,完全在本地运行,没有真正的服务器并访问本地文件。 它的功能有点类似于SQLite,并且仍然远低于SQL Server,但对于本地副本来说,它对我来说已经足够了。 再次部署就是将一堆文件复制到程序文件夹中。 本文对安装此数据库引擎有一些提示
  • 如果您需要真正的SQL Server的全部功能,另一种选择是使用名为“LocalDB”的SQL 2012的新功能。 它基本上与SQL Express中的数据库引擎基本相同,但它可按需运行,无需安装和维护服务,恰好位于应用程序首次连接的用户上下文中。 这使您可以使用几乎相同的功能集,但管理更简单。 对于部署,您必须运行单独的安装程序,除了本地管理员权限之外,这些安装程序并不需要太多知识,然后连接和使用情况几乎相同。 如果您使用的功能多于简单的哑数据存储,这将是一个很好的折衷。
  • 对于客户端数据库本身,我根本不会包含在安装程序中。 相反,当程序运行时,首先需要使用它,它会尝试打开它,如果找不到,则从头开始创建它。 这可以通过将数据库创建脚本捆绑到应用程序本身中来完成,它将依次运行所有脚本以创建一个空的数据库(基本上发送一堆CREATE TABLE / CREATE VIEW / CREATE PROCEDURE /创建任意数据)。 有些ORM甚至可以自动执行该步骤(但我怀疑这是一个好主意)。因为这只会发生一次,所以它不应该对性能产生很大的影响,并且如果DB以某种方式被删除,也会使程序具有抵抗性。 所有这些都必须在每台客户端计算机上完成,但我认为可能会创建一个非常愚蠢的next / next / next安装程序。

    现在用于服务器端。 无需干预即可轻松安装服务器,这实际上更加困难。 问题的根本在于有许多配置远远超出了你的系统,但仍然可以影响它。 数据库引擎本身就是其中之一,因为它需要配置权限,设置数据库,允许外部远程连接,启用协议和配置自动备份。 此外,服务器可能包括需要打开端口以接受传入连接的防火墙,也可能包含防止网络活动的杀毒软件等。

    这就是我认为超出你的应用程序所能做到的和应该做的事情,即使这意味着IT人员需要手动执行此操作(这不是什么负担,因为它只会执行一次) 。 在这里我没有太多的好建议, Sharpeye500的建议很好,因为它允许无人值守的SQL Server安装,但Sharpeye500是正确的条件存在,但情况可能并非总是如此。

    你可以自动化的是创建服务器端数据库。 您可以使用与我为客户端提出的相同的“安装程序”,即发送CREATE DATABASE / CREATE TABLEs语句从头开始构建空数据库。 唯一需要的参数是服务器名称/数据库名称/用户/密码。 安装程序可以从那里建立连接字符串。 客户端应用程序可能使用类似的方法来定位服务器数据库,并且这些参数也可能包含在客户端安装程序中。


    问题1:将SQL数据库添加到应用程序 - 应该使用visual studio解决方案。
    点击使用数据库的项目(或者更好的,首先创建一个文件夹),Ctrl + Shift + A> Data> Local Database / Service-Based Database。
    那么你应该填充数据库,更改连接字符串等。
    该项目将为您提供一个连接字符串,可以调整并在安装中进行更改,因为文件路径可能有所不同。
    这样,它将使用clickonce将数据库复制到项目安装中。

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

    问题2:不需要SSMS(Menegment Studio)或类似的东西。
    现在,我倾向于认为您正在运行应用程序的服务器上安装数据库 - 您不应该那样做。 为数据库使用专用服务器。
    然而,对于你的答案,你可以做两件事情来改善它:
    1.您可以创建一个名为model的SQL数据库 - 它非常适合数据库创建,因为它将自身复制到新的数据库中,并使事情更轻松。
    然后,您的应用程序可以运行(在安装部分中)SQLConnection.CreateDatabase,它将复制模型并为您的需要创建数据库。
    2. Yoy可以迁移到一个更新的解决方案,比如使用EntityFramework,在那里开发你的类并且EF负责存储。

    我没有使用过Clickonce一段时间,但我知道你可以使用你的文本,你的徽标来定制它的版本...如果你想自动化,其中一个步骤是运行你的代码,如果你提供它。 你可以创建安装文件。 只需创建(Ctrl-Shift-A)安装文件(其中有),您可以在其中覆盖方法并运行您想要的(文件复制,调整,需求检查..)


    我想建议您的客户端和服务器端平稳安装inno setup (next> next> next) 。 目前我正在为我的客户端安装使用inno安装程序安装程序。

    参考:1.如何使用inno安装程序构建安装程序2.用于.NET应用程序的Inno安装程序

    问题1: - 您可以使用SQL Server附加数据库(解决方案资源管理器>添加新项目> SQL Server数据库(OR))您可以在客户端系统中安装SQL Server(Standard / Express),并通过Inno Setup创建数据库和数据库对象。

    请按照以下步骤创建客户端安装程序。

  • Windows应用程序 - 使用Visual Studio部署项目创建一个exe文件
  • SQL Server安装安装程序
  • DB脚本作为.SQL文件(创建数据库,创建表,创建存储过程)
  • 下载Inno Setup>创建项目>参考路径>创建inno设置

    注意:您可以在inno setup文件夹中包含其他先决条件,您可以订购安装步骤,例如1.NET Framework,2. Windows App EXE,3. SQL Server Express,4.数据库脚本恢复

    一旦建立inno设置,您将只有一个客户端安装的设置。 您可以为服务器端安装创建另一个设置。

    链接地址: http://www.djcxy.com/p/73663.html

    上一篇: Client Server Installation Package .NET

    下一篇: Group the similar boxes