/// <summary>安装</summary> public void Install() { if (!GtkPath.IsNullOrEmpty()) { SetDllDirectory(GtkPath); } }
/// <summary>检查是否安装有GTK运行时</summary> /// <returns></returns> public Boolean Check() { // 只处理Windows if (!Runtime.Windows) { return(true); } // LOCALDATA if (GtkRoot.IsNullOrEmpty()) { var data = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); GtkRoot = data.CombinePath("Gtk").GetFullPath(); } //XTrace.WriteLine("查找GTK运行时:{0}", GtkRoot); var di = GtkRoot.AsDirectory(); if (!di.Exists) { return(false); } var dis = di.GetDirectories(); if (dis == null || dis.Length == 0) { return(false); } //var gtk = dis.OrderByDescending(e => e.Name).FirstOrDefault(); //GtkPath = gtk.FullName; //Version = new Version(gtk.Name.TrimStart('v', 'V')); foreach (var item in dis) { var gtk = item.FullName.CombinePath("libgdk-3-0.dll"); if (File.Exists(gtk)) { GtkPath = item.FullName; try { Version = new Version(item.Name.TrimStart('v', 'V')); } catch { } break; } } if (GtkPath.IsNullOrEmpty()) { return(false); } XTrace.WriteLine("发现GTK运行时:[{0}] {1}", Version, GtkPath); return(true); }