如何部署“;SQL Server Express+EF”;应用

本文关键字:SQL Server 应用 Express+EF 何部署 部署 | 更新日期: 2023-09-27 18:21:54

这是我第一次部署使用SQL Server Express数据库的应用程序。我正在使用实体框架模型首先联系数据库。我用InstallShield创建了一个安装向导来安装应用程序。

以下是我在目标计算机中安装应用程序的步骤:

  1. 正在安装MS SQL Server Express(DEST)
  2. 使用安装文件(DEST)安装程序
  3. 从SQL server分离数据库,并将相关的.mdf、.ldf文件复制到目标计算机
  4. 使用SQL Server Management Studio将数据库文件附加到目标计算机中

我知道服务器名称和SQL名称实例不同,我的程序无法使用旧连接字符串正确运行。

我是这方面的初学者,我想知道我应该在目标计算机中做什么才能运行程序?

  • 我应该在运行时找到更改连接字符串的方法吗
  • 或者有什么方法可以修改installshield项目,它为我做这项工作吗?(installshield是专业版)
  • 你能建议我做什么吗

在我的搜索中,我看到WiX可以做到这一点,但我发现它很复杂,而且我没有足够的时间来学习。我需要尽快部署应用程序。

非常感谢。

如何部署“;SQL Server Express+EF”;应用

在项目中使用LocalDB的一些提示:

  1. 点击此处下载SQL Express LocalDB 2014。你可以用像这样的单一命令静默安装它

    msiexec /i SqlLocalDB.msi /qn IACCEPTSQLLOCALDBLICENSETERMS=YES

  2. 在VS项目中包含.MDF,并将其属性设置为Copy if newer,以便在构建过程中将其复制到bin文件夹中,从而自动包含在安装程序中。

  3. 在应用程序启动时(在app.cs中),检查数据库文件是否存在于所需位置(例如%PUBLIC%'YourApp'Data)(所有本地用户在本地使用MDF的WPF桌面应用程序)。如果没有,请将.mdf文件从应用程序安装目录复制到数据目录.

  4. 修改app.config,使您的连接字符串看起来像:<add name="MyContextLocalDB" connectionString="Server=(localdb)'MSSQLLocalDB; Integrated Security=True; AttachDBFilename=|DataDirectory|'MyDatabase.mdf; Connection Timeout = 30" providerName="System.Data.SqlClient" />

连接超时应该增加,因为LocalDB exe是在您第一次尝试连接时启动的。

您也可以使用Database.CreateIfNotExists,但我从未尝试过。