- Remove StringEx.CS - Update all dependencies - Eliminate all warningstags/4.3.0.0
| @@ -50,7 +50,7 @@ namespace Shadowsocks.Controller | |||||
| var callback = _callback as HotKeys.HotKeyCallBackHandler; | var callback = _callback as HotKeys.HotKeyCallBackHandler; | ||||
| if (hotkeyStr.IsNullOrEmpty()) | |||||
| if (string.IsNullOrEmpty(hotkeyStr)) | |||||
| { | { | ||||
| HotKeys.UnregExistingHotkey(callback); | HotKeys.UnregExistingHotkey(callback); | ||||
| onComplete?.Invoke(RegResult.UnregSuccess); | onComplete?.Invoke(RegResult.UnregSuccess); | ||||
| @@ -214,7 +214,7 @@ namespace Shadowsocks.Controller | |||||
| AppendRecord(id, record); | AppendRecord(id, record); | ||||
| } | } | ||||
| } | } | ||||
| catch (Exception e) | |||||
| catch | |||||
| { | { | ||||
| logger.Debug("config changed asynchrously, just ignore this server"); | logger.Debug("config changed asynchrously, just ignore this server"); | ||||
| } | } | ||||
| @@ -219,16 +219,14 @@ var __RULES__ = {JsonConvert.SerializeObject(gfwLines, Formatting.Indented)}; | |||||
| return abpContent; | return abpContent; | ||||
| } | } | ||||
| private static readonly IEnumerable<char> IgnoredLineBegins = new[] { '!', '[' }; | |||||
| private static List<string> PreProcessGFWList(string content) | private static List<string> PreProcessGFWList(string content) | ||||
| { | { | ||||
| List<string> valid_lines = new List<string>(); | List<string> valid_lines = new List<string>(); | ||||
| using (var sr = new StringReader(content)) | |||||
| using (var stringReader = new StringReader(content)) | |||||
| { | { | ||||
| foreach (var line in sr.NonWhiteSpaceLines()) | |||||
| for (string line = stringReader.ReadLine(); line != null; line = stringReader.ReadLine()) | |||||
| { | { | ||||
| if (line.BeginWithAny(IgnoredLineBegins)) | |||||
| if (string.IsNullOrWhiteSpace(line) || line.StartsWith("!") || line.StartsWith("[")) | |||||
| continue; | continue; | ||||
| valid_lines.Add(line); | valid_lines.Add(line); | ||||
| } | } | ||||
| @@ -122,12 +122,13 @@ namespace Shadowsocks.Controller.Service | |||||
| public string ExpandEnvironmentVariables(string name, StringDictionary environmentVariables = null) | public string ExpandEnvironmentVariables(string name, StringDictionary environmentVariables = null) | ||||
| { | { | ||||
| name = name.ToLower(); | |||||
| // Expand the environment variables from the new process itself | // Expand the environment variables from the new process itself | ||||
| if (environmentVariables != null) | if (environmentVariables != null) | ||||
| { | { | ||||
| foreach(string key in environmentVariables.Keys) | foreach(string key in environmentVariables.Keys) | ||||
| { | { | ||||
| name = name.Replace($"%{key}%", environmentVariables[key], StringComparison.OrdinalIgnoreCase); | |||||
| name = name.Replace($"%{key.ToLower()}%", environmentVariables[key]); | |||||
| } | } | ||||
| } | } | ||||
| // Also expand the environment variables from current main process (system) | // Also expand the environment variables from current main process (system) | ||||
| @@ -420,7 +420,7 @@ namespace Shadowsocks.Controller | |||||
| { | { | ||||
| try | try | ||||
| { | { | ||||
| if (ssURL.IsNullOrEmpty() || ssURL.IsWhiteSpace()) | |||||
| if (string.IsNullOrWhiteSpace(ssURL)) | |||||
| return false; | return false; | ||||
| var servers = Server.GetServers(ssURL); | var servers = Server.GetServers(ssURL); | ||||
| @@ -23,7 +23,7 @@ namespace Shadowsocks.Controller.Hotkeys | |||||
| /// <returns></returns> | /// <returns></returns> | ||||
| public static Delegate GetCallback(string methodname) | public static Delegate GetCallback(string methodname) | ||||
| { | { | ||||
| if (methodname.IsNullOrEmpty()) throw new ArgumentException(nameof(methodname)); | |||||
| if (string.IsNullOrEmpty(methodname)) throw new ArgumentException(nameof(methodname)); | |||||
| MethodInfo dynMethod = typeof(HotkeyCallbacks).GetMethod(methodname, | MethodInfo dynMethod = typeof(HotkeyCallbacks).GetMethod(methodname, | ||||
| BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase); | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.IgnoreCase); | ||||
| return dynMethod == null ? null : Delegate.CreateDelegate(typeof(HotKeys.HotKeyCallBackHandler), Instance, dynMethod); | return dynMethod == null ? null : Delegate.CreateDelegate(typeof(HotKeys.HotKeyCallBackHandler), Instance, dynMethod); | ||||
| @@ -110,7 +110,7 @@ namespace Shadowsocks.Controller.Hotkeys | |||||
| { | { | ||||
| try | try | ||||
| { | { | ||||
| if (s.IsNullOrEmpty()) return null; | |||||
| if (string.IsNullOrEmpty(s)) return null; | |||||
| int offset = s.LastIndexOf("+", StringComparison.OrdinalIgnoreCase); | int offset = s.LastIndexOf("+", StringComparison.OrdinalIgnoreCase); | ||||
| if (offset <= 0) return null; | if (offset <= 0) return null; | ||||
| string modifierStr = s.Substring(0, offset).Trim(); | string modifierStr = s.Substring(0, offset).Trim(); | ||||
| @@ -36,7 +36,7 @@ namespace Shadowsocks.Controller | |||||
| else | else | ||||
| { | { | ||||
| string pacUrl; | string pacUrl; | ||||
| if (config.useOnlinePac && !config.pacUrl.IsNullOrEmpty()) | |||||
| if (config.useOnlinePac && !string.IsNullOrEmpty(config.pacUrl)) | |||||
| { | { | ||||
| pacUrl = config.pacUrl; | pacUrl = config.pacUrl; | ||||
| } | } | ||||
| @@ -68,7 +68,7 @@ namespace Shadowsocks.Encryption | |||||
| public static IEncryptor GetEncryptor(string method, string password) | public static IEncryptor GetEncryptor(string method, string password) | ||||
| { | { | ||||
| if (method.IsNullOrEmpty()) | |||||
| if (string.IsNullOrEmpty(method)) | |||||
| { | { | ||||
| method = Model.Server.DefaultMethod; | method = Model.Server.DefaultMethod; | ||||
| } | } | ||||
| @@ -292,13 +292,13 @@ namespace Shadowsocks.Model | |||||
| private static void CheckPassword(string password) | private static void CheckPassword(string password) | ||||
| { | { | ||||
| if (password.IsNullOrEmpty()) | |||||
| if (string.IsNullOrEmpty(password)) | |||||
| throw new ArgumentException(I18N.GetString("Password can not be blank")); | throw new ArgumentException(I18N.GetString("Password can not be blank")); | ||||
| } | } | ||||
| public static void CheckServer(string server) | public static void CheckServer(string server) | ||||
| { | { | ||||
| if (server.IsNullOrEmpty()) | |||||
| if (string.IsNullOrEmpty(server)) | |||||
| throw new ArgumentException(I18N.GetString("Server IP can not be blank")); | throw new ArgumentException(I18N.GetString("Server IP can not be blank")); | ||||
| } | } | ||||
| @@ -311,13 +311,13 @@ namespace Shadowsocks.Model | |||||
| public static void CheckProxyAuthUser(string user) | public static void CheckProxyAuthUser(string user) | ||||
| { | { | ||||
| if (user.IsNullOrEmpty()) | |||||
| if (string.IsNullOrEmpty(user)) | |||||
| throw new ArgumentException(I18N.GetString("Auth user can not be blank")); | throw new ArgumentException(I18N.GetString("Auth user can not be blank")); | ||||
| } | } | ||||
| public static void CheckProxyAuthPwd(string pwd) | public static void CheckProxyAuthPwd(string pwd) | ||||
| { | { | ||||
| if (pwd.IsNullOrEmpty()) | |||||
| if (string.IsNullOrEmpty(pwd)) | |||||
| throw new ArgumentException(I18N.GetString("Auth pwd can not be blank")); | throw new ArgumentException(I18N.GetString("Auth pwd can not be blank")); | ||||
| } | } | ||||
| } | } | ||||
| @@ -62,13 +62,13 @@ namespace Shadowsocks.Model | |||||
| public override string ToString() | public override string ToString() | ||||
| { | { | ||||
| if (server.IsNullOrEmpty()) | |||||
| if (string.IsNullOrEmpty(server)) | |||||
| { | { | ||||
| return I18N.GetString("New server"); | return I18N.GetString("New server"); | ||||
| } | } | ||||
| string serverStr = $"{FormalHostName}:{server_port}"; | string serverStr = $"{FormalHostName}:{server_port}"; | ||||
| return remarks.IsNullOrEmpty() | |||||
| return string.IsNullOrEmpty(remarks) | |||||
| ? serverStr | ? serverStr | ||||
| : $"{remarks} ({serverStr})"; | : $"{remarks} ({serverStr})"; | ||||
| } | } | ||||
| @@ -99,7 +99,7 @@ namespace Shadowsocks.Model | |||||
| server_port | server_port | ||||
| ); | ); | ||||
| if (!plugin.IsNullOrWhiteSpace()) | |||||
| if (!string.IsNullOrWhiteSpace(plugin)) | |||||
| { | { | ||||
| string pluginPart = plugin; | string pluginPart = plugin; | ||||
| @@ -112,7 +112,7 @@ namespace Shadowsocks.Model | |||||
| } | } | ||||
| } | } | ||||
| if (!remarks.IsNullOrEmpty()) | |||||
| if (!string.IsNullOrEmpty(remarks)) | |||||
| { | { | ||||
| tag = $"#{HttpUtility.UrlEncode(remarks, Encoding.UTF8)}"; | tag = $"#{HttpUtility.UrlEncode(remarks, Encoding.UTF8)}"; | ||||
| } | } | ||||
| @@ -157,7 +157,7 @@ namespace Shadowsocks.Model | |||||
| Server server = new Server(); | Server server = new Server(); | ||||
| var base64 = match.Groups["base64"].Value.TrimEnd('/'); | var base64 = match.Groups["base64"].Value.TrimEnd('/'); | ||||
| var tag = match.Groups["tag"].Value; | var tag = match.Groups["tag"].Value; | ||||
| if (!tag.IsNullOrEmpty()) | |||||
| if (!string.IsNullOrEmpty(tag)) | |||||
| { | { | ||||
| server.remarks = HttpUtility.UrlDecode(tag, Encoding.UTF8); | server.remarks = HttpUtility.UrlDecode(tag, Encoding.UTF8); | ||||
| } | } | ||||
| @@ -183,7 +183,7 @@ namespace Shadowsocks.Model | |||||
| public static Server ParseURL(string serverUrl) | public static Server ParseURL(string serverUrl) | ||||
| { | { | ||||
| string _serverUrl = serverUrl.Trim(); | string _serverUrl = serverUrl.Trim(); | ||||
| if (!_serverUrl.BeginWith("ss://", StringComparison.InvariantCultureIgnoreCase)) | |||||
| if (!_serverUrl.StartsWith("ss://", StringComparison.InvariantCultureIgnoreCase)) | |||||
| { | { | ||||
| return null; | return null; | ||||
| } | } | ||||
| @@ -39,8 +39,6 @@ namespace Shadowsocks.Proxy | |||||
| public object AsyncState { get; set; } | public object AsyncState { get; set; } | ||||
| public int BytesToRead; | |||||
| public Exception ex { get; set; } | public Exception ex { get; set; } | ||||
| } | } | ||||
| @@ -199,7 +197,7 @@ namespace Shadowsocks.Proxy | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| if (line.IsNullOrEmpty()) | |||||
| if (string.IsNullOrEmpty(line)) | |||||
| { | { | ||||
| return true; | return true; | ||||
| } | } | ||||
| @@ -1,314 +0,0 @@ | |||||
| using System; | |||||
| using System.Collections.Generic; | |||||
| using System.Globalization; | |||||
| using System.IO; | |||||
| using System.Linq; | |||||
| using System.Text; | |||||
| #if EXPOSE_EVERYTHING || EXPOSE_STRINGEX | |||||
| public | |||||
| #endif | |||||
| static partial class StringEx | |||||
| { | |||||
| #pragma warning disable 1591 | |||||
| public static StringComparison GlobalDefaultComparison { get; set; } = StringComparison.Ordinal; | |||||
| [ThreadStatic] | |||||
| private static StringComparison? _DefaultComparison; | |||||
| public static StringComparison DefaultComparison | |||||
| { | |||||
| get { return _DefaultComparison ?? GlobalDefaultComparison; } | |||||
| set { _DefaultComparison = value; } | |||||
| } | |||||
| #region basic String methods | |||||
| public static bool IsNullOrEmpty(this string value) | |||||
| => string.IsNullOrEmpty(value); | |||||
| public static bool IsNullOrWhiteSpace(this string value) | |||||
| => string.IsNullOrWhiteSpace(value); | |||||
| public static bool IsWhiteSpace(this string value) | |||||
| { | |||||
| foreach (var c in value) | |||||
| { | |||||
| if (char.IsWhiteSpace(c)) continue; | |||||
| return false; | |||||
| } | |||||
| return true; | |||||
| } | |||||
| #if !PCL | |||||
| public static string IsInterned(this string value) | |||||
| { | |||||
| if (value == null) | |||||
| throw new ArgumentNullException(nameof(value)); | |||||
| return string.IsInterned(value); | |||||
| } | |||||
| public static string Intern(this string value) | |||||
| { | |||||
| if (value == null) | |||||
| throw new ArgumentNullException(nameof(value)); | |||||
| return string.Intern(value); | |||||
| } | |||||
| #endif | |||||
| #if UNSAFE | |||||
| public static unsafe string ToLowerForASCII(this string value) | |||||
| { | |||||
| if (value.IsNullOrWhiteSpace()) | |||||
| return value; | |||||
| value = string.Copy(value); | |||||
| fixed (char* low = value) | |||||
| { | |||||
| var end = low + value.Length; | |||||
| for (var p = low; p < end; p++) | |||||
| { | |||||
| var c = *p; | |||||
| if (c < 'A' || c > 'Z') | |||||
| continue; | |||||
| *p = (char)(c + 0x20); | |||||
| } | |||||
| } | |||||
| return value; | |||||
| } | |||||
| public static unsafe string ToUpperForASCII(this string value) | |||||
| { | |||||
| if (value.IsNullOrWhiteSpace()) | |||||
| return value; | |||||
| value = string.Copy(value); | |||||
| fixed (char* low = value) | |||||
| { | |||||
| var end = low + value.Length; | |||||
| for (var p = low; p < end; p++) | |||||
| { | |||||
| var c = *p; | |||||
| if (c < 'a' || c > 'z') | |||||
| continue; | |||||
| *p = (char)(c - 0x20); | |||||
| } | |||||
| } | |||||
| return value; | |||||
| } | |||||
| #else | |||||
| public static string ToLowerForASCII(this string value) | |||||
| { | |||||
| if (value.IsNullOrWhiteSpace()) | |||||
| return value; | |||||
| var sb = new StringBuilder(value.Length); | |||||
| foreach (var c in value) | |||||
| { | |||||
| if (c < 'A' || c > 'Z') | |||||
| sb.Append(c); | |||||
| else | |||||
| sb.Append((char)(c + 0x20)); | |||||
| } | |||||
| return sb.ToString(); | |||||
| } | |||||
| public static string ToUpperForASCII(this string value) | |||||
| { | |||||
| if (value.IsNullOrWhiteSpace()) | |||||
| return value; | |||||
| var sb = new StringBuilder(value.Length); | |||||
| foreach (var c in value) | |||||
| { | |||||
| if (c < 'a' || c > 'z') | |||||
| sb.Append(c); | |||||
| else | |||||
| sb.Append((char)(c - 0x20)); | |||||
| } | |||||
| return sb.ToString(); | |||||
| } | |||||
| #endif | |||||
| #endregion | |||||
| #region comparing | |||||
| #region Is | |||||
| public static bool Is(this string a, string b) | |||||
| => string.Equals(a, b, DefaultComparison); | |||||
| public static bool Is(this string a, string b, StringComparison comparisonType) | |||||
| => string.Equals(a, b, comparisonType); | |||||
| #endregion | |||||
| #region BeginWith | |||||
| public static bool BeginWith(this string s, char c) | |||||
| { | |||||
| if (s.IsNullOrEmpty()) return false; | |||||
| return s[0] == c; | |||||
| } | |||||
| public static bool BeginWithAny(this string s, IEnumerable<char> chars) | |||||
| { | |||||
| if (s.IsNullOrEmpty()) return false; | |||||
| return chars.Contains(s[0]); | |||||
| } | |||||
| public static bool BeginWithAny(this string s, params char[] chars) | |||||
| => s.BeginWithAny(chars.AsEnumerable()); | |||||
| public static bool BeginWith(this string a, string b) | |||||
| { | |||||
| if (a == null || b == null) return false; | |||||
| return a.StartsWith(b, DefaultComparison); | |||||
| } | |||||
| public static bool BeginWith(this string a, string b, StringComparison comparisonType) | |||||
| { | |||||
| if (a == null || b == null) return false; | |||||
| return a.StartsWith(b, comparisonType); | |||||
| } | |||||
| #if !PCL | |||||
| public static bool BeginWith(this string a, string b, bool ignoreCase, CultureInfo culture) | |||||
| { | |||||
| if (a == null || b == null) return false; | |||||
| return a.StartsWith(b, ignoreCase, culture); | |||||
| } | |||||
| #endif | |||||
| #endregion | |||||
| #region FinishWith | |||||
| public static bool FinishWith(this string s, char c) | |||||
| { | |||||
| if (s.IsNullOrEmpty()) return false; | |||||
| return s.Last() == c; | |||||
| } | |||||
| public static bool FinishWithAny(this string s, IEnumerable<char> chars) | |||||
| { | |||||
| if (s.IsNullOrEmpty()) return false; | |||||
| return chars.Contains(s.Last()); | |||||
| } | |||||
| public static bool FinishWithAny(this string s, params char[] chars) | |||||
| => s.FinishWithAny(chars.AsEnumerable()); | |||||
| public static bool FinishWith(this string a, string b) | |||||
| { | |||||
| if (a == null || b == null) return false; | |||||
| return a.EndsWith(b, DefaultComparison); | |||||
| } | |||||
| public static bool FinishWith(this string a, string b, StringComparison comparisonType) | |||||
| { | |||||
| if (a == null || b == null) return false; | |||||
| return a.EndsWith(b, comparisonType); | |||||
| } | |||||
| #if !PCL | |||||
| public static bool FinishWith(this string a, string b, bool ignoreCase, CultureInfo culture) | |||||
| { | |||||
| if (a == null || b == null) return false; | |||||
| return a.EndsWith(b, ignoreCase, culture); | |||||
| } | |||||
| #endif | |||||
| #endregion | |||||
| #endregion | |||||
| #region ToLines | |||||
| public static IEnumerable<string> ToLines(this TextReader reader) | |||||
| { | |||||
| string line; | |||||
| while ((line = reader.ReadLine()) != null) | |||||
| yield return line; | |||||
| } | |||||
| public static IEnumerable<string> NonEmptyLines(this TextReader reader) | |||||
| { | |||||
| string line; | |||||
| while ((line = reader.ReadLine()) != null) | |||||
| { | |||||
| if (line == "") continue; | |||||
| yield return line; | |||||
| } | |||||
| } | |||||
| public static IEnumerable<string> NonWhiteSpaceLines(this TextReader reader) | |||||
| { | |||||
| string line; | |||||
| while ((line = reader.ReadLine()) != null) | |||||
| { | |||||
| if (line.IsWhiteSpace()) continue; | |||||
| yield return line; | |||||
| } | |||||
| } | |||||
| #endregion | |||||
| #region others | |||||
| private static readonly char[][] Quotes = new[] | |||||
| { | |||||
| "\"\"", | |||||
| "''", | |||||
| "“”", | |||||
| "‘’", | |||||
| "『』", | |||||
| "「」", | |||||
| "〖〗", | |||||
| "【】", | |||||
| }.Select(s => s.ToCharArray()).ToArray(); | |||||
| public static string Enquote(this string value) | |||||
| { | |||||
| if (value == null) | |||||
| return "(null)"; | |||||
| foreach (var pair in Quotes) | |||||
| { | |||||
| if (value.IndexOfAny(pair) < 0) | |||||
| return pair[0] + value + pair[1]; | |||||
| } | |||||
| return '"' + value.Replace("\\", @"\\").Replace("\"", @"\""") + '"'; | |||||
| } | |||||
| public static string Replace(this string value, string find, string rep, StringComparison comparsionType) | |||||
| { | |||||
| if (find.IsNullOrEmpty()) | |||||
| throw new ArgumentException(null, nameof(find)); | |||||
| if (rep == null) | |||||
| rep = ""; | |||||
| if (value.IsNullOrEmpty()) | |||||
| return value; | |||||
| var sb = new StringBuilder(value.Length); | |||||
| var last = 0; | |||||
| var len = find.Length; | |||||
| var idx = value.IndexOf(find, DefaultComparison); | |||||
| while (idx != -1) | |||||
| { | |||||
| sb.Append(value.Substring(last, idx - last)); | |||||
| sb.Append(rep); | |||||
| idx += len; | |||||
| last = idx; | |||||
| idx = value.IndexOf(find, idx, comparsionType); | |||||
| } | |||||
| sb.Append(value.Substring(last)); | |||||
| return sb.ToString(); | |||||
| } | |||||
| public static string ReplaceEx(this string value, string find, string rep) | |||||
| => value.Replace(find, rep, DefaultComparison); | |||||
| #endregion | |||||
| } | |||||
| @@ -212,7 +212,7 @@ namespace Shadowsocks.Util.SystemProxy | |||||
| if (arguments == "query") | if (arguments == "query") | ||||
| { | { | ||||
| if (stdout.IsNullOrWhiteSpace() || stdout.IsNullOrEmpty()) | |||||
| if (string.IsNullOrWhiteSpace(stdout)) | |||||
| { | { | ||||
| // we cannot get user settings | // we cannot get user settings | ||||
| throw new ProxyException(ProxyExceptionType.QueryReturnEmpty); | throw new ProxyException(ProxyExceptionType.QueryReturnEmpty); | ||||
| @@ -238,7 +238,7 @@ namespace Shadowsocks.Util | |||||
| // we are building x86 binary for both x86 and x64, which will | // we are building x86 binary for both x86 and x64, which will | ||||
| // cause problem when opening registry key | // cause problem when opening registry key | ||||
| // detect operating system instead of CPU | // detect operating system instead of CPU | ||||
| if (name.IsNullOrEmpty()) throw new ArgumentException(nameof(name)); | |||||
| if (string.IsNullOrEmpty(name)) throw new ArgumentException(nameof(name)); | |||||
| try | try | ||||
| { | { | ||||
| RegistryKey userKey = RegistryKey.OpenBaseKey(hive, | RegistryKey userKey = RegistryKey.OpenBaseKey(hive, | ||||
| @@ -310,7 +310,7 @@ namespace Shadowsocks.View | |||||
| { | { | ||||
| password = null; | password = null; | ||||
| string outPassword; | string outPassword; | ||||
| if ((outPassword = PasswordTextBox.Text).IsNullOrWhiteSpace()) | |||||
| if (string.IsNullOrWhiteSpace(outPassword = PasswordTextBox.Text)) | |||||
| { | { | ||||
| if (!isSave && !isCopy && ServersListBox.Items.Count > 1 && I18N.GetString("New server").Equals(ServersListBox.Items[_lastSelectedIndex].ToString())) | if (!isSave && !isCopy && ServersListBox.Items.Count > 1 && I18N.GetString("New server").Equals(ServersListBox.Items[_lastSelectedIndex].ToString())) | ||||
| { | { | ||||
| @@ -868,11 +868,11 @@ namespace Shadowsocks.View | |||||
| { | { | ||||
| if (!onlinePACItem.Checked) | if (!onlinePACItem.Checked) | ||||
| { | { | ||||
| if (controller.GetConfigurationCopy().pacUrl.IsNullOrEmpty()) | |||||
| if (string.IsNullOrEmpty(controller.GetConfigurationCopy().pacUrl)) | |||||
| { | { | ||||
| UpdateOnlinePACURLItem_Click(sender, e); | UpdateOnlinePACURLItem_Click(sender, e); | ||||
| } | } | ||||
| if (!controller.GetConfigurationCopy().pacUrl.IsNullOrEmpty()) | |||||
| if (!string.IsNullOrEmpty(controller.GetConfigurationCopy().pacUrl)) | |||||
| { | { | ||||
| localPACItem.Checked = false; | localPACItem.Checked = false; | ||||
| onlinePACItem.Checked = true; | onlinePACItem.Checked = true; | ||||
| @@ -889,7 +889,7 @@ namespace Shadowsocks.View | |||||
| I18N.GetString("Please input PAC Url"), | I18N.GetString("Please input PAC Url"), | ||||
| I18N.GetString("Edit Online PAC URL"), | I18N.GetString("Edit Online PAC URL"), | ||||
| origPacUrl, -1, -1); | origPacUrl, -1, -1); | ||||
| if (!pacUrl.IsNullOrEmpty() && pacUrl != origPacUrl) | |||||
| if (!string.IsNullOrEmpty(pacUrl) && pacUrl != origPacUrl) | |||||
| { | { | ||||
| controller.SavePACUrl(pacUrl); | controller.SavePACUrl(pacUrl); | ||||
| } | } | ||||
| @@ -213,6 +213,6 @@ | |||||
| private System.Windows.Forms.Button DeleteButton; | private System.Windows.Forms.Button DeleteButton; | ||||
| private System.Windows.Forms.Button OkButton; | private System.Windows.Forms.Button OkButton; | ||||
| private System.Windows.Forms.Button UpdateAllButton; | private System.Windows.Forms.Button UpdateAllButton; | ||||
| private System.Windows.Forms.Button CancelButton; | |||||
| private new System.Windows.Forms.Button CancelButton; | |||||
| } | } | ||||
| } | } | ||||
| @@ -1,22 +1,30 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> | |||||
| <?xml version="1.0" encoding="utf-8"?> | |||||
| <configuration> | <configuration> | ||||
| <configSections> | <configSections> | ||||
| <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | ||||
| <section name="Shadowsocks.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/> | |||||
| <section name="Shadowsocks.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> | |||||
| </sectionGroup> | </sectionGroup> | ||||
| </configSections> | </configSections> | ||||
| <startup> | <startup> | ||||
| <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2"/> | |||||
| <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> | |||||
| </startup> | </startup> | ||||
| <runtime> | <runtime> | ||||
| <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> | <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> | ||||
| <dependentAssembly> | <dependentAssembly> | ||||
| <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> | |||||
| <bindingRedirect oldVersion="0.0.0.0-2.6.10.0" newVersion="2.6.10.0"/> | |||||
| <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> | |||||
| <bindingRedirect oldVersion="0.0.0.0-2.6.10.0" newVersion="2.6.10.0" /> | |||||
| </dependentAssembly> | </dependentAssembly> | ||||
| <dependentAssembly> | <dependentAssembly> | ||||
| <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> | |||||
| <bindingRedirect oldVersion="0.0.0.0-2.6.10.0" newVersion="2.6.10.0"/> | |||||
| <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> | |||||
| <bindingRedirect oldVersion="0.0.0.0-2.6.10.0" newVersion="2.6.10.0" /> | |||||
| </dependentAssembly> | |||||
| <dependentAssembly> | |||||
| <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> | |||||
| <bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" /> | |||||
| </dependentAssembly> | |||||
| <dependentAssembly> | |||||
| <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> | |||||
| <bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" /> | |||||
| </dependentAssembly> | </dependentAssembly> | ||||
| </assemblyBinding> | </assemblyBinding> | ||||
| </runtime> | </runtime> | ||||
| @@ -1,31 +1,30 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||||
| <packages> | <packages> | ||||
| <package id="Caseless.Fody" version="1.8.3" targetFramework="net472" /> | |||||
| <package id="Caseless.Fody" version="1.9.0" targetFramework="net472" /> | |||||
| <package id="CommandLineParser" version="2.8.0" targetFramework="net472" /> | <package id="CommandLineParser" version="2.8.0" targetFramework="net472" /> | ||||
| <package id="Costura.Fody" version="3.3.3" targetFramework="net472" /> | |||||
| <package id="DynamicData" version="6.16.6" targetFramework="net472" /> | |||||
| <package id="Fody" version="4.2.1" targetFramework="net472" developmentDependency="true" /> | |||||
| <package id="Costura.Fody" version="4.1.0" targetFramework="net472" /> | |||||
| <package id="DynamicData" version="6.17.14" targetFramework="net472" /> | |||||
| <package id="Fody" version="6.2.6" targetFramework="net472" developmentDependency="true" /> | |||||
| <package id="GlobalHotKey" version="1.1.0" targetFramework="net472" /> | <package id="GlobalHotKey" version="1.1.0" targetFramework="net472" /> | ||||
| <package id="Google.Protobuf" version="3.11.4" targetFramework="net472" /> | |||||
| <package id="Newtonsoft.Json" version="12.0.2" targetFramework="net472" /> | |||||
| <package id="NLog" version="4.6.8" targetFramework="net472" /> | |||||
| <package id="Google.Protobuf" version="3.13.0" targetFramework="net472" /> | |||||
| <package id="Newtonsoft.Json" version="12.0.3" targetFramework="net472" /> | |||||
| <package id="NLog" version="4.7.5" targetFramework="net472" /> | |||||
| <package id="ReactiveUI" version="11.5.35" targetFramework="net472" /> | <package id="ReactiveUI" version="11.5.35" targetFramework="net472" /> | ||||
| <package id="ReactiveUI.WPF" version="11.5.35" targetFramework="net472" /> | <package id="ReactiveUI.WPF" version="11.5.35" targetFramework="net472" /> | ||||
| <package id="Splat" version="9.5.20" targetFramework="net472" /> | |||||
| <package id="StringEx.CS" version="0.3.1" targetFramework="net472" developmentDependency="true" /> | |||||
| <package id="System.Buffers" version="4.4.0" targetFramework="net472" /> | |||||
| <package id="Splat" version="9.5.49" targetFramework="net472" /> | |||||
| <package id="System.Buffers" version="4.5.1" targetFramework="net472" /> | |||||
| <package id="System.IO" version="4.3.0" targetFramework="net472" /> | <package id="System.IO" version="4.3.0" targetFramework="net472" /> | ||||
| <package id="System.Memory" version="4.5.2" targetFramework="net472" /> | |||||
| <package id="System.Memory" version="4.5.4" targetFramework="net472" /> | |||||
| <package id="System.Net.Http" version="4.3.4" targetFramework="net472" /> | <package id="System.Net.Http" version="4.3.4" targetFramework="net472" /> | ||||
| <package id="System.Numerics.Vectors" version="4.4.0" targetFramework="net472" /> | |||||
| <package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" /> | |||||
| <package id="System.Reactive" version="4.4.1" targetFramework="net472" /> | <package id="System.Reactive" version="4.4.1" targetFramework="net472" /> | ||||
| <package id="System.Runtime" version="4.3.0" targetFramework="net472" /> | |||||
| <package id="System.Runtime.CompilerServices.Unsafe" version="4.5.3" targetFramework="net472" /> | |||||
| <package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net472" /> | |||||
| <package id="System.Runtime" version="4.3.1" targetFramework="net472" /> | |||||
| <package id="System.Runtime.CompilerServices.Unsafe" version="4.7.1" targetFramework="net472" /> | |||||
| <package id="System.Security.Cryptography.Algorithms" version="4.3.1" targetFramework="net472" /> | |||||
| <package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net472" /> | <package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net472" /> | ||||
| <package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net472" /> | <package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net472" /> | ||||
| <package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net472" /> | |||||
| <package id="System.Security.Cryptography.X509Certificates" version="4.3.2" targetFramework="net472" /> | |||||
| <package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net472" /> | <package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net472" /> | ||||
| <package id="System.ValueTuple" version="4.5.0" targetFramework="net472" /> | <package id="System.ValueTuple" version="4.5.0" targetFramework="net472" /> | ||||
| <package id="ZXing.Net" version="0.16.5" targetFramework="net472" /> | |||||
| <package id="ZXing.Net" version="0.16.6" targetFramework="net472" /> | |||||
| </packages> | </packages> | ||||
| @@ -1,7 +1,7 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||||
| <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||||
| <Import Project="..\packages\Costura.Fody.3.3.3\build\Costura.Fody.props" Condition="Exists('..\packages\Costura.Fody.3.3.3\build\Costura.Fody.props')" /> | |||||
| <Import Project="..\packages\Caseless.Fody.1.8.3\build\Caseless.Fody.props" Condition="Exists('..\packages\Caseless.Fody.1.8.3\build\Caseless.Fody.props')" /> | |||||
| <Import Project="..\packages\Costura.Fody.4.1.0\build\Costura.Fody.props" Condition="Exists('..\packages\Costura.Fody.4.1.0\build\Costura.Fody.props')" /> | |||||
| <Import Project="..\packages\Caseless.Fody.1.9.0\build\Caseless.Fody.props" Condition="Exists('..\packages\Caseless.Fody.1.9.0\build\Caseless.Fody.props')" /> | |||||
| <PropertyGroup> | <PropertyGroup> | ||||
| <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | ||||
| <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | ||||
| @@ -69,31 +69,31 @@ | |||||
| <ApplicationManifest>app.manifest</ApplicationManifest> | <ApplicationManifest>app.manifest</ApplicationManifest> | ||||
| </PropertyGroup> | </PropertyGroup> | ||||
| <ItemGroup> | <ItemGroup> | ||||
| <Reference Include="Caseless, Version=1.8.3.0, Culture=neutral, PublicKeyToken=409b3227471b0f0d, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\Caseless.Fody.1.8.3\lib\net452\Caseless.dll</HintPath> | |||||
| <Reference Include="Caseless, Version=1.9.0.0, Culture=neutral, PublicKeyToken=409b3227471b0f0d, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\Caseless.Fody.1.9.0\lib\net452\Caseless.dll</HintPath> | |||||
| </Reference> | </Reference> | ||||
| <Reference Include="CommandLine, Version=2.8.0.0, Culture=neutral, PublicKeyToken=5a870481e358d379, processorArchitecture=MSIL"> | <Reference Include="CommandLine, Version=2.8.0.0, Culture=neutral, PublicKeyToken=5a870481e358d379, processorArchitecture=MSIL"> | ||||
| <HintPath>..\packages\CommandLineParser.2.8.0\lib\net461\CommandLine.dll</HintPath> | <HintPath>..\packages\CommandLineParser.2.8.0\lib\net461\CommandLine.dll</HintPath> | ||||
| </Reference> | </Reference> | ||||
| <Reference Include="Costura, Version=3.3.3.0, Culture=neutral, PublicKeyToken=9919ef960d84173d, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\Costura.Fody.3.3.3\lib\net40\Costura.dll</HintPath> | |||||
| <Reference Include="Costura, Version=4.1.0.0, Culture=neutral, PublicKeyToken=9919ef960d84173d, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\Costura.Fody.4.1.0\lib\net40\Costura.dll</HintPath> | |||||
| </Reference> | </Reference> | ||||
| <Reference Include="DynamicData, Version=6.16.0.0, Culture=neutral, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\DynamicData.6.16.6\lib\net461\DynamicData.dll</HintPath> | |||||
| <Reference Include="DynamicData, Version=6.17.0.0, Culture=neutral, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\DynamicData.6.17.14\lib\net461\DynamicData.dll</HintPath> | |||||
| </Reference> | </Reference> | ||||
| <Reference Include="GlobalHotKey, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL"> | <Reference Include="GlobalHotKey, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL"> | ||||
| <HintPath>..\packages\GlobalHotKey.1.1.0\lib\GlobalHotKey.dll</HintPath> | <HintPath>..\packages\GlobalHotKey.1.1.0\lib\GlobalHotKey.dll</HintPath> | ||||
| </Reference> | </Reference> | ||||
| <Reference Include="Google.Protobuf, Version=3.11.4.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\Google.Protobuf.3.11.4\lib\net45\Google.Protobuf.dll</HintPath> | |||||
| <Reference Include="Google.Protobuf, Version=3.13.0.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\Google.Protobuf.3.13.0\lib\net45\Google.Protobuf.dll</HintPath> | |||||
| </Reference> | </Reference> | ||||
| <Reference Include="Microsoft.CSharp" /> | <Reference Include="Microsoft.CSharp" /> | ||||
| <Reference Include="Microsoft.VisualBasic" /> | <Reference Include="Microsoft.VisualBasic" /> | ||||
| <Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> | <Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> | ||||
| <HintPath>..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll</HintPath> | |||||
| <HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath> | |||||
| </Reference> | </Reference> | ||||
| <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> | <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> | ||||
| <HintPath>..\packages\NLog.4.6.8\lib\net45\NLog.dll</HintPath> | |||||
| <HintPath>..\packages\NLog.4.7.5\lib\net45\NLog.dll</HintPath> | |||||
| </Reference> | </Reference> | ||||
| <Reference Include="PresentationCore" /> | <Reference Include="PresentationCore" /> | ||||
| <Reference Include="PresentationFramework" /> | <Reference Include="PresentationFramework" /> | ||||
| @@ -104,11 +104,11 @@ | |||||
| <HintPath>..\packages\ReactiveUI.WPF.11.5.35\lib\net472\ReactiveUI.WPF.dll</HintPath> | <HintPath>..\packages\ReactiveUI.WPF.11.5.35\lib\net472\ReactiveUI.WPF.dll</HintPath> | ||||
| </Reference> | </Reference> | ||||
| <Reference Include="Splat, Version=9.5.0.0, Culture=neutral, processorArchitecture=MSIL"> | <Reference Include="Splat, Version=9.5.0.0, Culture=neutral, processorArchitecture=MSIL"> | ||||
| <HintPath>..\packages\Splat.9.5.20\lib\net461\Splat.dll</HintPath> | |||||
| <HintPath>..\packages\Splat.9.5.49\lib\net461\Splat.dll</HintPath> | |||||
| </Reference> | </Reference> | ||||
| <Reference Include="System" /> | <Reference Include="System" /> | ||||
| <Reference Include="System.Buffers, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll</HintPath> | |||||
| <Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath> | |||||
| </Reference> | </Reference> | ||||
| <Reference Include="System.ComponentModel.Composition" /> | <Reference Include="System.ComponentModel.Composition" /> | ||||
| <Reference Include="System.Configuration" /> | <Reference Include="System.Configuration" /> | ||||
| @@ -122,8 +122,8 @@ | |||||
| </Reference> | </Reference> | ||||
| <Reference Include="System.IO.Compression" /> | <Reference Include="System.IO.Compression" /> | ||||
| <Reference Include="System.Management" /> | <Reference Include="System.Management" /> | ||||
| <Reference Include="System.Memory, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\System.Memory.4.5.2\lib\netstandard2.0\System.Memory.dll</HintPath> | |||||
| <Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath> | |||||
| </Reference> | </Reference> | ||||
| <Reference Include="System.Net" /> | <Reference Include="System.Net" /> | ||||
| <Reference Include="System.Net.Http, Version=4.1.1.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | <Reference Include="System.Net.Http, Version=4.1.1.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | ||||
| @@ -132,23 +132,23 @@ | |||||
| <Private>True</Private> | <Private>True</Private> | ||||
| </Reference> | </Reference> | ||||
| <Reference Include="System.Numerics" /> | <Reference Include="System.Numerics" /> | ||||
| <Reference Include="System.Numerics.Vectors, Version=4.1.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll</HintPath> | |||||
| <Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath> | |||||
| </Reference> | </Reference> | ||||
| <Reference Include="System.Reactive, Version=4.4.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL"> | <Reference Include="System.Reactive, Version=4.4.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL"> | ||||
| <HintPath>..\packages\System.Reactive.4.4.1\lib\net46\System.Reactive.dll</HintPath> | <HintPath>..\packages\System.Reactive.4.4.1\lib\net46\System.Reactive.dll</HintPath> | ||||
| </Reference> | </Reference> | ||||
| <Reference Include="System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll</HintPath> | |||||
| <Reference Include="System.Runtime, Version=4.1.1.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\System.Runtime.4.3.1\lib\net462\System.Runtime.dll</HintPath> | |||||
| <Private>True</Private> | <Private>True</Private> | ||||
| <Private>True</Private> | <Private>True</Private> | ||||
| </Reference> | </Reference> | ||||
| <Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath> | |||||
| <Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath> | |||||
| </Reference> | </Reference> | ||||
| <Reference Include="System.Runtime.Serialization" /> | <Reference Include="System.Runtime.Serialization" /> | ||||
| <Reference Include="System.Security.Cryptography.Algorithms, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | <Reference Include="System.Security.Cryptography.Algorithms, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | ||||
| <HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll</HintPath> | |||||
| <HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net463\System.Security.Cryptography.Algorithms.dll</HintPath> | |||||
| <Private>True</Private> | <Private>True</Private> | ||||
| <Private>True</Private> | <Private>True</Private> | ||||
| </Reference> | </Reference> | ||||
| @@ -162,8 +162,8 @@ | |||||
| <Private>True</Private> | <Private>True</Private> | ||||
| <Private>True</Private> | <Private>True</Private> | ||||
| </Reference> | </Reference> | ||||
| <Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath> | |||||
| <Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath> | |||||
| <Private>True</Private> | <Private>True</Private> | ||||
| <Private>True</Private> | <Private>True</Private> | ||||
| </Reference> | </Reference> | ||||
| @@ -184,11 +184,11 @@ | |||||
| <Reference Include="UIAutomationProvider" /> | <Reference Include="UIAutomationProvider" /> | ||||
| <Reference Include="WindowsBase" /> | <Reference Include="WindowsBase" /> | ||||
| <Reference Include="WindowsFormsIntegration" /> | <Reference Include="WindowsFormsIntegration" /> | ||||
| <Reference Include="zxing, Version=0.16.5.0, Culture=neutral, PublicKeyToken=4e88037ac681fe60, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\ZXing.Net.0.16.5\lib\net47\zxing.dll</HintPath> | |||||
| <Reference Include="zxing, Version=0.16.6.0, Culture=neutral, PublicKeyToken=4e88037ac681fe60, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\ZXing.Net.0.16.6\lib\net47\zxing.dll</HintPath> | |||||
| </Reference> | </Reference> | ||||
| <Reference Include="zxing.presentation, Version=0.16.5.0, Culture=neutral, PublicKeyToken=4e88037ac681fe60, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\ZXing.Net.0.16.5\lib\net47\zxing.presentation.dll</HintPath> | |||||
| <Reference Include="zxing.presentation, Version=0.16.6.0, Culture=neutral, PublicKeyToken=4e88037ac681fe60, processorArchitecture=MSIL"> | |||||
| <HintPath>..\packages\ZXing.Net.0.16.6\lib\net47\zxing.presentation.dll</HintPath> | |||||
| </Reference> | </Reference> | ||||
| </ItemGroup> | </ItemGroup> | ||||
| <ItemGroup> | <ItemGroup> | ||||
| @@ -262,7 +262,6 @@ | |||||
| </Compile> | </Compile> | ||||
| <Compile Include="Settings.cs" /> | <Compile Include="Settings.cs" /> | ||||
| <Compile Include="Controller\System\Hotkeys\Hotkeys.cs" /> | <Compile Include="Controller\System\Hotkeys\Hotkeys.cs" /> | ||||
| <Compile Include="StringEx.cs" /> | |||||
| <Compile Include="Util\ProcessManagement\Job.cs" /> | <Compile Include="Util\ProcessManagement\Job.cs" /> | ||||
| <Compile Include="Util\ProcessManagement\ThreadUtil.cs" /> | <Compile Include="Util\ProcessManagement\ThreadUtil.cs" /> | ||||
| <Compile Include="Util\Sockets\LineReader.cs" /> | <Compile Include="Util\Sockets\LineReader.cs" /> | ||||
| @@ -427,14 +426,14 @@ | |||||
| </ItemGroup> | </ItemGroup> | ||||
| <ItemGroup /> | <ItemGroup /> | ||||
| <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> | <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> | ||||
| <Import Project="..\packages\Fody.4.2.1\build\Fody.targets" Condition="Exists('..\packages\Fody.4.2.1\build\Fody.targets')" /> | |||||
| <Import Project="..\packages\Fody.6.2.6\build\Fody.targets" Condition="Exists('..\packages\Fody.6.2.6\build\Fody.targets')" /> | |||||
| <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> | <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> | ||||
| <PropertyGroup> | <PropertyGroup> | ||||
| <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> | <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> | ||||
| </PropertyGroup> | </PropertyGroup> | ||||
| <Error Condition="!Exists('..\packages\Fody.4.2.1\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.4.2.1\build\Fody.targets'))" /> | |||||
| <Error Condition="!Exists('..\packages\Caseless.Fody.1.8.3\build\Caseless.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Caseless.Fody.1.8.3\build\Caseless.Fody.props'))" /> | |||||
| <Error Condition="!Exists('..\packages\Costura.Fody.3.3.3\build\Costura.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.3.3.3\build\Costura.Fody.props'))" /> | |||||
| <Error Condition="!Exists('..\packages\Fody.6.2.6\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.6.2.6\build\Fody.targets'))" /> | |||||
| <Error Condition="!Exists('..\packages\Caseless.Fody.1.9.0\build\Caseless.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Caseless.Fody.1.9.0\build\Caseless.Fody.props'))" /> | |||||
| <Error Condition="!Exists('..\packages\Costura.Fody.4.1.0\build\Costura.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.4.1.0\build\Costura.Fody.props'))" /> | |||||
| </Target> | </Target> | ||||
| <!-- To modify your build process, add your task inside one of the targets below and uncomment it. | <!-- To modify your build process, add your task inside one of the targets below and uncomment it. | ||||
| Other similar extension points exist, see Microsoft.Common.targets. | Other similar extension points exist, see Microsoft.Common.targets. | ||||
| @@ -69,6 +69,7 @@ | |||||
| </ProjectReference> | </ProjectReference> | ||||
| </ItemGroup> | </ItemGroup> | ||||
| <ItemGroup> | <ItemGroup> | ||||
| <None Include="app.config" /> | |||||
| <None Include="packages.config" /> | <None Include="packages.config" /> | ||||
| </ItemGroup> | </ItemGroup> | ||||
| <Choose> | <Choose> | ||||
| @@ -0,0 +1,15 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> | |||||
| <configuration> | |||||
| <runtime> | |||||
| <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> | |||||
| <dependentAssembly> | |||||
| <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> | |||||
| <bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" /> | |||||
| </dependentAssembly> | |||||
| <dependentAssembly> | |||||
| <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> | |||||
| <bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" /> | |||||
| </dependentAssembly> | |||||
| </assemblyBinding> | |||||
| </runtime> | |||||
| </configuration> | |||||