Commit d8dd536f authored by 段廷瑞's avatar 段廷瑞

1、修复更新覆盖本地配置文件问题

2、修复更新成功记录更新时间失败问题
parent 699e1b29
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
<add key="PatchTimeFrame_Sql" value="720"/> <add key="PatchTimeFrame_Sql" value="720"/>
<add key="PatchTimeFrame_Xml" value="720"/> <add key="PatchTimeFrame_Xml" value="720"/>
<add key="PatchTimeFrame_Xml" value="720"/>
<!--是否排除.pdb文件。1:排除,其他包含。--> <!--是否排除.pdb文件。1:排除,其他包含。-->
<add key="Exclude_PDB" value="1"/> <add key="Exclude_PDB" value="1"/>
<add key="ClientSettingsProvider.ServiceUri" value=""/> <add key="ClientSettingsProvider.ServiceUri" value=""/>
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<configuration> <configuration>
<appSettings> <appSettings>
<add key="LoginInfo" value="wwF/xpBzWek=" /> <add key="UpdateTime" value="2021-12-30 10:52:06.703" />
<add key="LoginVerify" value="v86f5Q3Xa7U=" />
<add key="UpdateTime" value="2021-12-30 09:12:18.113" />
<add key="ExceptFiles" value="" />
<add key="ContainFiles" value="" />
<add key="PatchTimeFrame_Dll" value="48" />
<add key="PatchTimeFrame_Sql" value="720" />
<add key="PatchTimeFrame_Xml" value="720" />
<add key="Exclude_PDB" value="1" />
</appSettings> </appSettings>
<startup> <startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" /> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
......
{"LoginInfo":null,"LoginVerify":null,"UpdateTime":"2021-12-30 10:52:06.703"}
\ No newline at end of file
using ICSharpCode.SharpZipLib.Zip; using ICSharpCode.SharpZipLib.Zip;
using Newtonsoft.Json;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Configuration; using System.Configuration;
...@@ -182,6 +183,40 @@ namespace Tools.MyUtils ...@@ -182,6 +183,40 @@ namespace Tools.MyUtils
} }
#endregion
#region 读写json配置文件
/// <summary>
/// 读取JSON配置文件信息(UTF8)
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public static T JsonConfig<T>() where T : new()
{
var fileName = $@"{Utils.ConfigPath}\{typeof(T).Name}.json";
if (!File.Exists(fileName))
{
var config = new T();
File.WriteAllText(fileName, JsonConvert.SerializeObject(config), Encoding.UTF8);
return config;
}
else
{
var json = File.ReadAllText(fileName, Encoding.UTF8);
return JsonConvert.DeserializeObject<T>(json);
}
}
/// <summary>
/// 保存JSON配置文件信息(UTF8)
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="config"></param>
public static void JsonConfig<T>(T config)
{
var fileName = $@"{Utils.ConfigPath}\{typeof(T).Name}.json";
File.WriteAllText(fileName, JsonConvert.SerializeObject(config), Encoding.UTF8);
}
#endregion #endregion
#region 打开文件 #region 打开文件
...@@ -1046,4 +1081,23 @@ namespace Tools.MyUtils ...@@ -1046,4 +1081,23 @@ namespace Tools.MyUtils
#endregion #endregion
} }
/// <summary>
/// 登录记忆
/// </summary>
public class LoginMemory
{
/// <summary>
/// 登录信息(用户ID)
/// </summary>
public string LoginInfo { get; set; }
/// <summary>
/// 验证信息(用户密码)
/// </summary>
public string LoginVerify { get; set; }
/// <summary>
/// 更新日期
/// </summary>
public string UpdateTime { get; set; }
}
} }
...@@ -47,6 +47,10 @@ ...@@ -47,6 +47,10 @@
<Reference Include="ICSharpCode.SharpZipLib, Version=1.3.2.10, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL"> <Reference Include="ICSharpCode.SharpZipLib, Version=1.3.2.10, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
<HintPath>..\packages\SharpZipLib.1.3.2\lib\net45\ICSharpCode.SharpZipLib.dll</HintPath> <HintPath>..\packages\SharpZipLib.1.3.2\lib\net45\ICSharpCode.SharpZipLib.dll</HintPath>
</Reference> </Reference>
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\AppHome\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="NPOI, Version=2.5.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL"> <Reference Include="NPOI, Version=2.5.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
<HintPath>..\FunnyPick\packages\NPOI.2.5.1\lib\net45\NPOI.dll</HintPath> <HintPath>..\FunnyPick\packages\NPOI.2.5.1\lib\net45\NPOI.dll</HintPath>
</Reference> </Reference>
......
...@@ -64,8 +64,10 @@ namespace Tools.UI.sys ...@@ -64,8 +64,10 @@ namespace Tools.UI.sys
LoginInfo.IsPrincipal = Convert.ToBoolean(dt.DefaultView[0]["IsPrincipal"].ToString()); LoginInfo.IsPrincipal = Convert.ToBoolean(dt.DefaultView[0]["IsPrincipal"].ToString());
LoginInfo.IsStaff = Convert.ToBoolean(dt.DefaultView[0]["IsStaff"].ToString()); LoginInfo.IsStaff = Convert.ToBoolean(dt.DefaultView[0]["IsStaff"].ToString());
//保存登录信息 //保存登录信息
Utils.AppSettings(APP.LOGIN_INFO, Utils.Encryptor(dt.DefaultView[0]["ID"].ToString())); var m = Utils.JsonConfig<LoginMemory>();
Utils.AppSettings(APP.LOGIN_VERIFY, password); m.LoginInfo = Utils.Encryptor(dt.DefaultView[0]["ID"].ToString());
m.LoginVerify = password;
Utils.JsonConfig(m);
//关闭窗口 //关闭窗口
this.DialogResult = DialogResult.OK; this.DialogResult = DialogResult.OK;
this.Close(); this.Close();
......
...@@ -107,6 +107,7 @@ namespace Tools.UI.sys ...@@ -107,6 +107,7 @@ namespace Tools.UI.sys
&& !f.FullName.Contains("\\Config\\") //剔除配置文件 && !f.FullName.Contains("\\Config\\") //剔除配置文件
&& !f.FullName.Contains("\\Logs\\") //剔除日志文件 && !f.FullName.Contains("\\Logs\\") //剔除日志文件
&& !f.FullName.Contains("Tools.exe.") //剔除应用配置文件(包含更新时间和登录信息) && !f.FullName.Contains("Tools.exe.") //剔除应用配置文件(包含更新时间和登录信息)
&& !f.Extension.Equals(".json")
).ToList(); //剔除自动更新相关目录 ).ToList(); //剔除自动更新相关目录
//构造压缩文件路径集合 //构造压缩文件路径集合
List<string> FileNames = new List<string>(); List<string> FileNames = new List<string>();
......
...@@ -260,7 +260,8 @@ namespace Tools ...@@ -260,7 +260,8 @@ namespace Tools
/// </summary> /// </summary>
private void CheckUpdate(bool IsSilentWhenNotFound = false) private void CheckUpdate(bool IsSilentWhenNotFound = false)
{ {
var updateTime = Utils.AppSettings(APP.UPDATE_TIME); var m = Utils.JsonConfig<LoginMemory>();
var updateTime = m.UpdateTime; //Utils.AppSettings(APP.UPDATE_TIME);
var dt =this._db.GetDataTable($"SELECT TOP 1 UDate, URemark FROM dbo.FTT_AutoUpdate WHERE UDate > '{updateTime}' ORDER BY UDate DESC", "FTT_AutoUpdate"); var dt =this._db.GetDataTable($"SELECT TOP 1 UDate, URemark FROM dbo.FTT_AutoUpdate WHERE UDate > '{updateTime}' ORDER BY UDate DESC", "FTT_AutoUpdate");
if (dt.DefaultView.Count > 0) if (dt.DefaultView.Count > 0)
{ {
...@@ -281,7 +282,9 @@ namespace Tools ...@@ -281,7 +282,9 @@ namespace Tools
if (x.IsCompleted && x.Exception == null) if (x.IsCompleted && x.Exception == null)
{ {
var date = Convert.ToDateTime(drv["UDate"]); var date = Convert.ToDateTime(drv["UDate"]);
Utils.AppSettings(APP.UPDATE_TIME, date.ToString("yyyy-MM-dd HH:mm:ss.fff")); m.UpdateTime = date.ToString("yyyy-MM-dd HH:mm:ss.fff");
Utils.JsonConfig(m);
//Utils.AppSettings(APP.UPDATE_TIME, date.ToString("yyyy-MM-dd HH:mm:ss.fff"));
} }
else else
{ {
...@@ -478,8 +481,9 @@ namespace Tools ...@@ -478,8 +481,9 @@ namespace Tools
/// </summary> /// </summary>
private void InitLoginInfo() private void InitLoginInfo()
{ {
var m = Utils.JsonConfig<LoginMemory>();
//获取登录信息 //获取登录信息
var loginInfo = Utils.AppSettings(APP.LOGIN_INFO); var loginInfo = m.LoginInfo; //Utils.AppSettings(APP.LOGIN_INFO);
if (!string.IsNullOrEmpty(loginInfo)) if (!string.IsNullOrEmpty(loginInfo))
{ {
var sql = $@" var sql = $@"
...@@ -495,7 +499,7 @@ namespace Tools ...@@ -495,7 +499,7 @@ namespace Tools
var userName = dt.DefaultView[0]["UserName"].ToString(); var userName = dt.DefaultView[0]["UserName"].ToString();
var password = dt.DefaultView[0]["Password"].ToString(); var password = dt.DefaultView[0]["Password"].ToString();
//验证密码 //验证密码
var loginVerify = Utils.AppSettings(APP.LOGIN_VERIFY); var loginVerify = m.LoginVerify; //Utils.AppSettings(APP.LOGIN_VERIFY);
if (loginVerify != password) if (loginVerify != password)
{ {
if (Utils.TipYN("密码已过期,请重新登录!")) if (Utils.TipYN("密码已过期,请重新登录!"))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment