diff --git a/shadowsocks-csharp/View/MenuViewController.cs b/shadowsocks-csharp/View/MenuViewController.cs
index fc942835..0c087ef6 100755
--- a/shadowsocks-csharp/View/MenuViewController.cs
+++ b/shadowsocks-csharp/View/MenuViewController.cs
@@ -82,17 +82,16 @@ namespace Shadowsocks.View
Configuration config = controller.GetConfigurationCopy();
- if (config.autoCheckUpdate)
- {
- _isStartupChecking = true;
- updateChecker.CheckUpdate(config, 3000);
- }
-
if (config.isDefault)
{
_isFirstRun = true;
ShowConfigForm();
}
+ else if(config.autoCheckUpdate)
+ {
+ _isStartupChecking = true;
+ updateChecker.CheckUpdate(config, 3000);
+ }
}
void controller_Errored(object sender, System.IO.ErrorEventArgs e)
@@ -262,12 +261,10 @@ namespace Shadowsocks.View
if (updateChecker.NewVersionFound)
{
ShowBalloonTip(String.Format(I18N.GetString("Shadowsocks {0} Update Found"), updateChecker.LatestVersionNumber), I18N.GetString("Click here to update"), ToolTipIcon.Info, 5000);
- _isFirstRun = false;
}
else if (!_isStartupChecking)
{
ShowBalloonTip(I18N.GetString("Shadowsocks"), I18N.GetString("No update is available"), ToolTipIcon.Info, 5000);
- _isFirstRun = false;
}
_isStartupChecking = false;
}
@@ -389,7 +386,12 @@ namespace Shadowsocks.View
{
configForm = null;
Utils.ReleaseMemory(true);
- ShowFirstTimeBalloon();
+ if (_isFirstRun)
+ {
+ CheckUpdateForFirstRun();
+ ShowFirstTimeBalloon();
+ _isFirstRun = false;
+ }
}
private void Config_Click(object sender, EventArgs e)
@@ -404,18 +406,24 @@ namespace Shadowsocks.View
Application.Exit();
}
- private void ShowFirstTimeBalloon()
+ private void CheckUpdateForFirstRun()
{
- if (_isFirstRun)
+ Configuration config = controller.GetConfigurationCopy();
+ if (!config.isDefault)
{
- _notifyIcon.BalloonTipTitle = I18N.GetString("Shadowsocks is here");
- _notifyIcon.BalloonTipText = I18N.GetString("You can turn on/off Shadowsocks in the context menu");
- _notifyIcon.BalloonTipIcon = ToolTipIcon.Info;
- _notifyIcon.ShowBalloonTip(0);
- _isFirstRun = false;
+ _isStartupChecking = true;
+ updateChecker.CheckUpdate(config, 3000);
}
}
+ private void ShowFirstTimeBalloon()
+ {
+ _notifyIcon.BalloonTipTitle = I18N.GetString("Shadowsocks is here");
+ _notifyIcon.BalloonTipText = I18N.GetString("You can turn on/off Shadowsocks in the context menu");
+ _notifyIcon.BalloonTipIcon = ToolTipIcon.Info;
+ _notifyIcon.ShowBalloonTip(0);
+ }
+
private void AboutItem_Click(object sender, EventArgs e)
{
Process.Start("https://github.com/shadowsocks/shadowsocks-windows");
diff --git a/shadowsocks-csharp/shadowsocks-csharp.csproj b/shadowsocks-csharp/shadowsocks-csharp.csproj
index 2f43d366..008134ae 100644
--- a/shadowsocks-csharp/shadowsocks-csharp.csproj
+++ b/shadowsocks-csharp/shadowsocks-csharp.csproj
@@ -60,7 +60,6 @@
ManagedMinimumRules.ruleset
false
true
- true
app.manifest
@@ -347,25 +346,25 @@
- ();
-var attribute = config.Attribute("ExcludeAssemblies");
-if (attribute != null)
- foreach (var item in attribute.Value.Split('|').Select(x => x.Trim()).Where(x => x != string.Empty))
- excludedAssemblies.Add(item);
-var element = config.Element("ExcludeAssemblies");
-if (element != null)
- foreach (var item in element.Value.Split(new[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).Where(x => x != string.Empty))
- excludedAssemblies.Add(item);
-
-var filesToCleanup = Files.Select(f => f.ItemSpec).Where(f => !excludedAssemblies.Contains(Path.GetFileNameWithoutExtension(f), StringComparer.InvariantCultureIgnoreCase));
-
-foreach (var item in filesToCleanup)
- File.Delete(item);
+ ();
+var attribute = config.Attribute("ExcludeAssemblies");
+if (attribute != null)
+ foreach (var item in attribute.Value.Split('|').Select(x => x.Trim()).Where(x => x != string.Empty))
+ excludedAssemblies.Add(item);
+var element = config.Element("ExcludeAssemblies");
+if (element != null)
+ foreach (var item in element.Value.Split(new[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).Where(x => x != string.Empty))
+ excludedAssemblies.Add(item);
+
+var filesToCleanup = Files.Select(f => f.ItemSpec).Where(f => !excludedAssemblies.Contains(Path.GetFileNameWithoutExtension(f), StringComparer.InvariantCultureIgnoreCase));
+
+foreach (var item in filesToCleanup)
+ File.Delete(item);
]]>
diff --git a/test/test.csproj b/test/test.csproj
index e441b8c2..777a10b8 100755
--- a/test/test.csproj
+++ b/test/test.csproj
@@ -23,10 +23,13 @@
bin\x86\Debug\
x86
+ TRACE;DEBUG
bin\x86\Release\
x86
+ true
+ TRACE