Beispiel #1
0
 /// <summary>安装</summary>
 public void Install()
 {
     if (!GtkPath.IsNullOrEmpty())
     {
         SetDllDirectory(GtkPath);
     }
 }
Beispiel #2
0
        /// <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);
        }