如何使用 SQL Express 使在 WinForms .NET 3.5 中开发的软件具有可移植性

Posted

技术标签:

【中文标题】如何使用 SQL Express 使在 WinForms .NET 3.5 中开发的软件具有可移植性【英文标题】:How to make software developed in WinForms .NET 3.5 with SQL Express portable 【发布时间】:2010-10-23 09:00:28 【问题描述】:

我发现为 windows xp/vista/7 创建安装和部署包真的很痛苦 所以我的问题是我可以使用任何第三方工具(例如瘦应用程序)使我的应用程序可移植吗?

我的应用程序需要安装 dot net 3.5 框架和 sql express 05 我想把它放在 USB 驱动器上,用户可以直接从 USB 驱动器执行它,无需任何设置和部署,如果有任何其他方法可以实现软件的可移植性,请让我知道吗?

谢谢!

【问题讨论】:

【参考方案1】:

为了检查是否安装了 .Net 3.5 和 sql express,您可以检查它们是否已在注册表中注册。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion - CurrentVersion

但是您无法使用 3.5 编译的程序集检查这一点,因此您需要一个非 dotnet 应用程序来执行此操作,例如安装程序。

您要么必须用 c++ 之类的东西创建一个启动器,要么您可以创建一个 vb 脚本启动器,在启动您的 .net 应用程序之前检查先决条件。

【讨论】:

价格昂贵,还是执行时间昂贵?您还想将 .Net 3.5 和 SQL Express 与应用程序一起打包吗?【参考方案2】:

如果没有安装在本地硬盘上,SQL Express 和 .NET Framework 都不会运行。

SQL Express 的来源:http://social.msdn.microsoft.com/Forums/en-US/sqlsetupandupgrade/thread/fc729d31-8a0b-4156-ab75-4fec652a438b。

【讨论】:

是的,但 ThinApp 是虚拟机。这并不奇怪。如果想让它在没有这样一个系统的情况下作为一个普通的 Windows 应用程序执行,那是行不通的。【参考方案3】:

@Mikael 已经讲述了 .NET 检测的技巧,你应该看看。

我只想补充一点,对于便携式应用程序,您应该使用 SQL Server Compact 版本而不是 Express,

Link

【讨论】:

以上是关于如何使用 SQL Express 使在 WinForms .NET 3.5 中开发的软件具有可移植性的主要内容,如果未能解决你的问题,请参考以下文章

如何使在函数内创建的对象可在外部使用

如何从 SQL Express 2012 获取数据更改通知?

如何使在Swift中使用UIScrollView进行滚动和缩放

如何使用VS2008中集成的SQL Server 2005 Express?

如何使用 SQL Server Express 安排每日备份? [复制]

如何从 C# 代码将 SQL Server CE 迁移到 SQL Server 2012 Express