如何部署“;SQL Server Express+EF”;应用
本文关键字:SQL Server 应用 Express+EF 何部署 部署 | 更新日期: 2023-09-27 18:21:54
这是我第一次部署使用SQL Server Express数据库的应用程序。我正在使用实体框架模型首先联系数据库。我用InstallShield创建了一个安装向导来安装应用程序。
以下是我在目标计算机中安装应用程序的步骤:
- 正在安装MS SQL Server Express(DEST)
- 使用安装文件(DEST)安装程序
- 从SQL server分离数据库,并将相关的.mdf、.ldf文件复制到目标计算机
- 使用SQL Server Management Studio将数据库文件附加到目标计算机中
我知道服务器名称和SQL名称实例不同,我的程序无法使用旧连接字符串正确运行。
我是这方面的初学者,我想知道我应该在目标计算机中做什么才能运行程序?
- 我应该在运行时找到更改连接字符串的方法吗
- 或者有什么方法可以修改installshield项目,它为我做这项工作吗?(installshield是专业版)
- 你能建议我做什么吗
在我的搜索中,我看到WiX可以做到这一点,但我发现它很复杂,而且我没有足够的时间来学习。我需要尽快部署应用程序。
非常感谢。
在项目中使用LocalDB的一些提示:
-
点击此处下载SQL Express LocalDB 2014。你可以用像这样的单一命令静默安装它
msiexec /i SqlLocalDB.msi /qn IACCEPTSQLLOCALDBLICENSETERMS=YES
-
在VS项目中包含.MDF,并将其属性设置为
Copy if newer
,以便在构建过程中将其复制到bin文件夹中,从而自动包含在安装程序中。 -
在应用程序启动时(在
app.cs
中),检查数据库文件是否存在于所需位置(例如%PUBLIC%'YourApp'Data
)(所有本地用户在本地使用MDF的WPF桌面应用程序)。如果没有,请将.mdf文件从应用程序安装目录复制到数据目录. -
修改
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,但我从未尝试过。