使用本地数据库为 winForms 创建安装程序

Posted

技术标签:

【中文标题】使用本地数据库为 winForms 创建安装程序【英文标题】:Create installer for winForms with local DB 【发布时间】:2013-04-07 19:20:02 【问题描述】:

我有一个 Winforms 应用程序(跳棋游戏),它有一个本地数据库(使用 SQL Server Express) 保存注册的玩家和他们的分数..

我正在尝试通过 tutorial 为该应用创建安装程序

一切都很好,但是当我尝试添加玩家时,我收到了 SQL 错误 说找不到数据库.. 那么如何将本地数据库(.mdf 文件)添加到安装程序?

【问题讨论】:

考虑到您需要一个 SQL Express 实例,我建议您使用平面文件(XML 等)而不是数据库,这样可以减少部署先决条件,并且更容易打包。 @ericosg 谢谢,你有这方面的教程吗?因为这是我第一次部署项目.. 它会从谷歌搜索“read write xml c#”开始 @Elior 如果您需要 DB,您也可以考虑使用 SQL Server Compact 而不是 SQL Express。要使 SQL Server Compact 正常工作,您只需包含正确的 dll 集。 @outcoldman 感谢您的建议,但我必须使用 SQL Express,因为这是我的讲师要求之一.. 【参考方案1】:

如果在客户端机器上使用本地数据库的条件是OK的(见LocalDB deployment on client PC),在部署项目中您只需将数据库文件添加到应用程序文件夹(当解决方案资源管理器中选择文件系统编辑器时)已选择部署项目。

旁注:您是否知道在 VS2012 中不推荐使用 MSI 部署项目模板这一事实?

加法:它是back in VS 2013!

【讨论】:

感谢您的回答 :) 不,我不知道这个事实.. 感谢您的信息.. 那么如何在 VS2012 中完成呢? 基本上:不是。就微软而言,您必须学习 WIX 或购买商业安装程序(免费的 InstallShield Light Edition 很烂)。太奇妙了。投票here.【参考方案2】:

这是我在 wpf 中的解决方法。我认为Winform中的解决方案是相同的:

    右键单击您的 mdf 文件“content”并选择属性。在“build action”菜单中选择“content”。并在 copy to output 目录中选择 copy always

    Solution explorer 中转到 Properties/Settings.Settings 并将 连接字符串 放在一个字段中(注意 名称必须与您的App.config中的名称相同(例如在wpf中),如下图所示)。

    在您的设置项目添加->项目输出->右击,然后选择内容文件

【讨论】:

以上是关于使用本地数据库为 winForms 创建安装程序的主要内容,如果未能解决你的问题,请参考以下文章

winform_使用ClickOnce生成安装程序包页面&程序发布新版本通知客户端更新

WinForm项目开发傻瓜教程

winform程序生成条形码并且并且保存到本地文件中。

如何仅使用 LocalDB 2016 发布我的 C# winform 程序?

c# winform程序怎么连接到本地sqlserver 数据库啊

如何防止编译器为不更本地化的应用程序创建 appname.resources.dll?