将 C# 应用程序与数据库打包

本文关键字:数据库 应用程序 | 更新日期: 2023-09-27 18:35:23

我打包了一个使用数据库的 WPF C# 应用程序。

但是,当我安装打包的应用程序时,它使用的是我一开始通过Visual Studio (.mdf)创建的数据库,而不是创建另一个数据库。

打包应用程序的全部目的是让我可以在其他计算机上共享它,所以我安装了它,我需要它为该应用程序的该实例创建一个新数据库。

有没有办法做到这一点?是否需要设置一个属性来表示数据库是本地实例?还是强制软件包在安装时创建一个新软件包?

任何帮助将不胜感激。

谢谢。

将 C# 应用程序与数据库打包

我自己只是在做这件事,我建议的一件事是使用 SQL 压缩版使这个过程变得容易得多,但如果目前为时已晚,请坚持使用当前数据库,但是我不知道下面的方法是否适用于 MDF 文件。

如何在客户端计算机上部署应用程序? 用户计算机是否安装了 SQL?

您需要做的第一件事是转到 MDF 的属性,并确保复制到输出目录设置为复制(如果较新且构建操作设置为内容)。

如果使用安装项目

来安装应用程序,则需要确保在项目、应用程序属性、发布、应用程序文件中,您的 mdf 位于列表中,并设置为"数据文件自动"、"必需"和"包含"。

并右键单击安装程序文件系统中的"应用程序文件夹",然后添加,项目输出、文件内容

最后更改代码中的连接字符串,使其读取

using ( SqlCeConnection sqlCon = new SqlCeConnection( @"Data Source=|DataDirectory|'App.sdf;Persist Security Info=False;" )

或者如果您没有使用精简版

using ( SqlConnection sqlCon = new SqlConnection( @"Data Source=|DataDirectory|'App.mdf;Persist Security Info=False;" )

^使用"DataDirectory"意味着你不在乎用户把应用程序放在哪里,你总是会得到正确的文件

在运行数据库并将其更改为紧凑数据库之前,它不支持适当的SQL数据库的很多功能。

毕竟,您可能仍然会遇到权限错误,因为它很长,我可能错过了一个步骤,所以如果您需要更多,请发表评论?

编辑如果用户没有sql服务器或sql Compact,最简单的解决方案是要求他们安装SQL CE,或者有一种方法可以使用DLL做同样的事情,但我无法让它工作

链接在这里 http://msdn.microsoft.com/en-us/library/aa983326.aspx

确保数据库已部署在客户端,并将应用程序中的连接字符串更改为指向它。