All'avvio della mia applicazione sto provando a vedere se l'utente ha una versione specifica di un software installato, in particolare il connettore MySQL, utilizzando tutti C#. Nel registro, MySQL contiene una voce di versione. Quindi quello che sto cercando di realizzare è questo.Come leggere il valore di una chiave di registro C#
La mia app si avvia. Da qualche parte nel codice di avvio ho bisogno di fare le seguenti cose in ordine. Controllare per vedere se l'utente ha il connettore di MySQL installata, che si trova a ...
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MySQL AB\MySQL Connector/Net
Se l'utente ha installato il connettore, ho voluto verificare quale versione che hanno, che è memorizzato come Nome = "Versione" e Dati = xxx (Immagine sotto)
Ora se l'utente ha una versione specifica installata, eseguirò altro codice, da cui posso prelevare.
Quale sarebbe il modo migliore per farlo?
EDIT: Di seguito è il codice che attualmente ho e sto ottenendo un errore sulla linea 19 (Si è commentato). Il mio errore dice "error CS1001: Identifier Expected
" Non ero in grado di capire cosa significa. Qualsiasi aiuto?
using System;
using Microsoft.Win32;
using System.Data;
public class regTest
{
public static void Main()
{
try
{
RegistryKey key = Registry.LocalMachine.OpenSubKey("Software\\Wow6432Node\\MySQL AB\\MySQL Connector\\Net");
if (key != null)
{
Object o = key.GetValue("Version");
if (o != null)
{
Version version = new Version(o as String); //"as" because it's REG_SZ...otherwise ToString() might be safe(r)
Version broken = new Version("6.7.4");
if (version.Equals.(broken)) //This is where the error is occuring
{
DataSet dataSet = ConfigurationManager.GetSection("system.data") as ystem.Data.DataSet;
DataView vi = dataSet.Tables[0].DefaultView;
vi.Sort = "Name";
if (vi.Find("MySql") == -1)
{
dataSet.Tables[0].Rows.Add("MySql"
, "MySql.Data.MySqlClient"
, "MySql.Data.MySqlClient"
,
typeof(MySql.Data.MySqlClient.MySqlClientFactory).AssemblyQualifiedName);
}
}
}
}
}
catch (Exception ex) //just for demonstration...it's always best to handle specific exceptions
{
//react appropriately
}
}
}
http://msdn.microsoft.com/en-us/library/microsoft.win32.registry.getvalue.aspx – Marcus