c# - 如何使用 sqlite 数据库部署 C# WPF 应用程序?
问题描述
我创建了一个与 SQLite 数据库交互的 C# WPF 应用程序。我想创建安装文件,以便能够在另一台计算机上安装该应用程序。有谁知道如何使用 SQLite 数据库部署 C# WPF 应用程序,我已经使用 ClickOnce 创建了一个设置文件,但是当我运行该应用程序并对需要从数据库获取数据的应用程序执行某些操作时,它会关闭。
解决方案
我不认为这都是关于制作安装文件的。我认为,应用程序崩溃是因为软件找不到数据库。如果您以这样一种方式开发您的软件,它会在启动时创建数据库(如果它不退出),那么您创建安装文件的方式就不会成为问题。这就是我的意思:
//use an environment generated file path.
public string _dataBasePath = $@"{ System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData)}\databaseName.db";
使用像 NHibernate 这样的对象关系映射器。您可以覆盖 OnStartUp 并创建您的数据库:
// In the App.xaml.cs class
private override void OnStartup(StartupEventArgs e) {
base.OnStartup(e);
BuildSchemaAction(config);
}
private void BuildSchemaAction(Configuration config) {
new SchemaExport(config).Create(false, !File.Exists(_dataBasePath));
}
protected Configuration config = new Configuration();
数据库文件(因为它是 SQLite)将不存在,因此将被创建。随后,它将不会被创建。该_dataBasePath
字段将是连接字符串中的路径,以便访问创建路径中的数据库。
x.ConnectionString = $"Data Source={_dataBasePath};version=3";
推荐阅读
- python - Python continue 语句在 while 循环中的问题
- java - WELD-001408:在注入点 [BackedAnnotatedField] @Inject 具有限定符 @Default 的类型 Logger 的依赖关系不满足
- javascript - 有没有办法检查子 div 的底部?
- .net - CsvHelper 包:.netcoreapp3.0 不支持?
- visual-studio-code - 如何使用键盘专注于 git commit 消息输入 VSCode?
- android - 如何在 Android 上解释 mobilenetv2 分割结果输出?
- java - WebClient 返回空响应的问题
- sass - 修改器的简单 Sass BEM 继承
- python - 将变量传递给 IPython 魔术函数的问题
- laravel - 如何在 Laravel 中将可空列更改为具有默认值?