如何检测MySQL是否已安装?

时间:2011-12-29 12:14:21

标签: c# .net mysql windows

如果没有注册表的帮助,我如何知道是否安装了MySQL?我试图通过C#在Windows机器上确定这个。

我找到了一个涉及查询注册表的解决方案,但我不想依赖于此。 C#中是否有用于确定当前安装的软件的功能?

3 个答案:

答案 0 :(得分:2)

您可以通过WMI执行此操作:您需要的课程为Win32_Product

Powershell中的非常简单

Get-WmiObject -Class Win32_Product 

将获取已安装产品的列表,然后您可以对其进行过滤。

在C#中,尝试System.Management命名空间:

    public bool CheckForMySQLServer()
    {
        string query = "SELECT Name FROM Win32_Product WHERE Name LIKE '%MySQL Server%'";

        var searcher = new ManagementObjectSearcher(query);
        var collection = searcher.Get();

        return collection.Count > 0;
    }

请注意,这非常慢 - 在我的电脑上花了一分多钟 - 但如果需要,您可以获取版本号字符串(请参阅集合项目上的GetText()方法)。

答案 1 :(得分:0)

假设你还需要访问MySQL(a.o.t。只知道它的存在)你可以

  • (可选)通过try-catch块中的反射加载MySQL连接器的GAC副本(如果失败)
  • 加载MySQL连接器的本地副本
  • 尝试使用错误的用户名/密码连接到localhost
  • 检查错误代码。如果这是“访问被拒绝”你有MySQL

答案 2 :(得分:0)

检查MySQL安装注册表项:

bool IsMySqlInstalled()
{
   return Registry.LocalMachine.OpenSubKey(@"SOFTWARE\MySQL AB") != null;
}

有关创建密钥的MySQL详细信息,可以在here的“更改注册表”部分下找到:

  

MySQL Installation Wizard(MySQL安装向导)在Windows XP中创建一个Windows注册表项。   典型的安装情况,位于   HKEY_LOCAL_MACHINE \ SOFTWARE \ MySQL AB。