用c# 自动更新程序

时间:2021-05-19

作者:冰封一夏
出处:http://bine(HttpRuntime.AppDomainAppPath + "printupdate", file); if (!File.Exists(path)) { httpResult.KeyValue = ""; httpResult.Result = false; httpResult.ErrorMessage = "文件不存在"; } else { httpResult = ConvertToBase64Type(path); } } return new HttpResponseMessage { Content = new StringContent(httpResult.ToJson(), Encoding.GetEncoding("UTF-8"), "application/json") }; }HttpResult ConvertToBase64Type(string fileName) { HttpResult httpResult = new HttpResult(); var byts = File.ReadAllBytes(fileName); httpResult.KeyValue = Convert.ToBase64String(byts); return httpResult; } bool CheckKey(string key) { return key == Encryption.Encrypt(m_strkey); }private static string encryptKey = "111222333444"; //默认密钥向量 private static byte[] Keys = { 0x41, 0x72, 0x65, 0x79, 0x6F, 0x75, 0x6D, 0x79, 0x53, 0x6E, 0x6F, 0x77, 0x6D, 0x61, 0x6E, 0x3F }; /// <summary> /// 加密 /// </summary> /// <param name="encryptString"></param> /// <returns></returns> public static string Encrypt(string encryptString) { if (string.IsNullOrEmpty(encryptString)) return string.Empty; RijndaelManaged rijndaelProvider = new RijndaelManaged(); rijndaelProvider.Key = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 32)); rijndaelProvider.IV = Keys; ICryptoTransform rijndaelEncrypt = rijndaelProvider.CreateEncryptor(); byte[] inputData = Encoding.UTF8.GetBytes(encryptString); byte[] encryptedData = rijndaelEncrypt.TransformFinalBlock(inputData, 0, inputData.Length); return Convert.ToBase64String(encryptedData); }

需要注意的地方:

1、我这里用到了json,那么不能直接饮用json的dll文件,会出现更新时候占用的问题,可以使用fastjson的开源代码,放进来解决,你可以直接使用xml格式的返回内容,这样就不需要json了,这样更方便

2、如果你的下载接口是返回的文件流,那么你更新程序里面直接接收流保存文件就行了

3、Program.cs里面,停止服务的功能,其实是可以通过传递参数的形式来停止,我这里写死了,你们根据自己需求修改

效果

你可以根据自己的需求,修改下界面效果,这是最简单的示例界面而已。

以上就是用c# 自动更新程序的详细内容,更多关于c# 自动更新程序的资料请关注其它相关文章!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章