【发布时间】:2008-12-18 03:52:12
【问题描述】:
我有一个使用 MYSQL 的 C# 应用程序。我处于测试版发布点,需要一个包含我的应用程序以及 MYSQL 的安装包。所以基本上,我需要安装 MYSQL 并从我的 .NET 安装包中执行恢复。
任何帮助将不胜感激。
【问题讨论】:
标签: c# .net mysql installation
我有一个使用 MYSQL 的 C# 应用程序。我处于测试版发布点,需要一个包含我的应用程序以及 MYSQL 的安装包。所以基本上,我需要安装 MYSQL 并从我的 .NET 安装包中执行恢复。
任何帮助将不胜感激。
【问题讨论】:
标签: c# .net mysql installation
您正在尝试安装 mysql 服务器。这应该是您发现有问题的第一个线索。大多数服务器应用程序设计为安装在服务器上,而不是客户端上。值得注意的一点是服务器应用程序喜欢假设他们“拥有”服务器。这对客户端应用程序来说是一个巨大的禁忌。
既然我们已经确定我们做错了,我们需要选择要做什么。我们有两个选择:
我个人建议尽快切换到 SQLite(或类似的)。这是“正确的事情”,您不必在未来几年内维护黑客。
您已被警告。以下是您需要注意和缓解的一些事项:
考虑到这一切,我想说你最好的选择是set up an xcopyable mysql
【讨论】:
我已将答案发布到另一个question
我们对此采取了不同的方法。我们通过在调用 MySQL 之前编写一个包装器来生成配置文件(以正确设置基本路径等),使 MySQL 可以进行 xcopy。然后我们使用标准设置安装了另一个服务。该服务将负责为我们启动 MySQL 和其他所需的后台程序(在我们的例子中为 Apache)。由于 MySQL 是由我们部署的,因此我们希望完全控制它。
因此,使用这种方法,您可以简单地将 MySQL 包与您的安装一起包含在内,而只需担心安装您自己的服务。
【讨论】:
这个问题与another question 非常相似。然而,答案并没有真正的帮助。
你可以run executables from a custom action in the .Net deployment project,这是我推荐的。 (查看标题“将可执行文件作为自定义操作调用”)
希望一切都可以通过命令行处理。如果没有,请尝试使用 Wise 或 InstallShield 之类的脚本安装程序,我认为他们对此类内容有更好的支持。
希望有帮助!
【讨论】:
如果您正在使用或可以使用 NSIS,您应该阅读以下内容:Silent MySQL Install
关于恢复,您也许可以使用 MySQL 包含的工具之一编写脚本,或者修改这个旧的 NSIS script 的一部分
祝你好运!
【讨论】:
@Orion Edwards
非常感谢您的步骤。我也有同样的疑问。事实上,我们只是拒绝了 SQLite,因为我们的独立应用程序需要一些过程和外键约束。但现在我觉得如果将 SQLite 部署在客户端计算机上,它总是作为独立桌面应用程序的更好选择。
现在,我必须坚持使用 MySQL。所以我使用不同类型的脚本和机制来处理不同的可能情况。例如:
这种方法可以吗?或者有更好、更合适的方法来做到这一点?
以后我想我会坚持SQLite! :-p
【讨论】:
看看使用 Visual Studio 的打包和部署工具。如果您本地连接(MySQL .NET 组件)而不是 ODBC 连接,它应该会自动引入 MySQL 依赖项。在任何情况下,它都允许您将其他软件添加到安装程序中,如果您需要它可以自动解包。我已经使用它来部署 C# 应用程序,使用您从 MySQL 网站下载的 MySQL 库和 CoreLab 的 MySQL 3rd 方库。
【讨论】: