示例#1
0
        /// <summary>下载</summary>
        /// <returns></returns>
        public async Task <Boolean> DownloadAsync()
        {
            var set = NewLife.Setting.Current;

            //var client = new WebClientX
            //{
            //    Log = XTrace.Log
            //};

            //var links = client.GetLinks(set.PluginServer);
            //var lnk = links.First(e => e.Name.EqualIgnoreCase("Gtk"));

            //var file = client.DownloadLink(set.PluginServer, "Gtk", GtkRoot);
            var file = await DownloadLinkAsync(set.PluginServer, "Gtk", GtkRoot);

            var link = new Link();

            link.Parse(file);

            XTrace.WriteLine("版本:{0}", link.Version);

            //client.DownloadLinkAndExtract(set.PluginServer, "Gtk", gtk, true);

            GtkPath = GtkRoot.CombinePath(link.Version + "");
            Version = link.Version;

            Extract(file, GtkPath, true);

            return(true);
        }
示例#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);
        }