WCF实现客户端自动更新-GenerateFileList
GenerateFileList
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.IO;
- namespace GenerateFileList
- {
- public class Generator
- {
- private readonly string _appPath = AppDomain.CurrentDomain.BaseDirectory;
- protected void GenerateFileList(string dir, List<FileEntity> fileEntities)
- {
- var files = Directory.GetFiles(dir);
- foreach (var tem in files)
- {
- var fileInfo = new FileInfo(tem);
- var file = new FileEntity()
- {
- FileName = tem.Replace(_appPath, "").Replace("\\", "\\\\"),
- LastUpdate = fileInfo.LastWriteTime.ToString("yyyyMMddHHmmss")
- };
- if (file.FileName == "GenerateFileList.exe"||file.FileName== "filelist.xml")
- {
- continue;
- }
- fileEntities.Add(file);
- }
- var directories = Directory.GetDirectories(dir);
- foreach (var directory in directories)
- {
- GenerateFileList(directory, fileEntities);
- }
- }
- public void GenerateFileList()
- {
- var filelist = new FileListEntity() { FileCode = Guid.NewGuid().ToString().ToUpper().Replace("-", "") };
- GenerateFileList(_appPath, filelist.FileEntities);
- filelist.SerializeConfig(Path.Combine(_appPath, "filelist.xml"));
- }
- }
- public class FileEntity
- {
- public string LastUpdate { get; set; }
- public string FileName { get; set; }
- }
- public class FileListEntity
- {
- private List<FileEntity> _fileEntities = new List<FileEntity>();
- public string FileCode { get; set; }
- public List<FileEntity> FileEntities
- {
- get { return _fileEntities; }
- set { _fileEntities = value; }
- }
- }
- }
SerializeCfg
- using System.IO;
- using System.Xml.Serialization;
- namespace GenerateFileList
- {
- public static class SerializeCfg
- {
- public static T DeserializeConfig<T>(this string path)
- {
- T result;
- using (FileStream fs = File.OpenRead(path))
- {
- //读取文件
- int nLength = (int)fs.Length;
- byte[] byteArray = new byte[nLength];
- fs.Read(byteArray, , nLength);
- using (MemoryStream stream = new MemoryStream(byteArray))
- {
- //返序列化
- XmlSerializer reader = new XmlSerializer(typeof (T));
- result = (T) reader.Deserialize(stream);
- }
- }
- return result;
- }
- /// <summary>
- /// 序列化服务到持久设备
- /// </summary>
- public static void SerializeConfig<T>(this T obj, string path)
- {
- //序列化到内存
- XmlSerializer writer = new XmlSerializer(typeof(T));
- using (MemoryStream ms = new MemoryStream())
- {
- writer.Serialize(ms, obj);
- byte[] byteArray = ms.ToArray();
- //保存数据到文件
- using (FileStream fs = File.Create(path))
- {
- fs.Write(byteArray, , byteArray.Length);
- }
- }
- }
- }
- }
WCF实现客户端自动更新-GenerateFileList的更多相关文章
- WCF实现客户端自动更新
IServiceUpdate using System.IO; using System.ServiceModel; using System.ServiceModel.Web; namespace ...
- svn服务器端的客户端自动更新
先说这个方式的一个弊端,那就是服务器端这边代码不能与svn服务器出现冲突,一旦冲突就失效. 实现原理是,利用svn版本库,hooks目录的bat钩子开展工作. 共在hooks目录下建立3个文件如下:p ...
- SVN----------项目服务器上的svn客户端自动更新设置。
1.局域网服务器上搭建了PHP项目运行的环境,然后怎么样讲根目录拉去到的项目可以随着开发人员提交的代码,自动更新成最新的代码. 2.首先将svn版本库上的代码拉取到www目录下或者你的根目录. 3.然 ...
- WindowsForm客户端自动更新逻辑
启动客户端的时候,单独开一个线程,该线程主要是判断指定服务器上的更新包和本地使用的客户端是否一致,是否需要更新,不需要更新,则退出,需要更新则从服务端的下载更新包,然后提示用户是否更新,点击更新,启动 ...
- c#客户端自动更新模块
一.概述 将需要更新的文件上传到服务器端,然后客户端从服务器下载更新文件并覆盖本地文件. 二.功能模块 1.将更新文件放入指定文件夹,检测更新,生成更新配置文件,并上传到服务器 2.获取服务器的更新配 ...
- Nancy+BUI+SQLite自动更新服务端和客户端保护更新程序
写了一个自动更新服务网站和自动更新客户端.基本功能测试完毕.记录下 项目地址:https://github.com/TeemoHQ/AutoUpdate 需求 自动集成,回退版本,守护进程,服务端操作 ...
- 游戏《Minecraft》或其他应用程序 实现 自动更新 客户端版本
本渣又来写(水)博客了. 先说一下,我这个解决方案的安全性并不是企业级的,咱们就是一群穷开服的Minecraft玩家. 如果你要投入到企业级应用(容易被黑客攻击的场景),请自己写,思路凑合看看.不然安 ...
- Winform实现客户端的自动更新
话不多说,直接上干货.当然也希望各位前辈多多指导. 自动更新客户端的设计原理图 请花两分钟时间,仔细阅读下面这张图,明白客户端自动升级的原理. 自动更新的效果图 1. ...
- PCB WCF Web接口增减参数后,在客户端不更新的情况,是否影响客户端,评估测试
1.目的:由于接口众多,服务端变更接口,会造成服务停用更新,造成客户端不能使用或报错, 在此评估[Web中心]此服务端,接口接口参数增加或减少,是否对客户端造成影响 2.评估内容:服务端增加单值参数, ...
随机推荐
- git ignore 添加忽略文件不生效解决办法
在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件的方法(如无,则需自己手工建立此文件).这个文件每一行保存了一个匹配的规则例如: /targ ...
- js中面向对象
1.对象的表示方法,以下是对象的两种方法:第二种方法是使用函数构造器来创建一个对象. 2.对象的一种表达方式,这种方式更像Java中对象的创建,就是用一个new来创建一个对象实例.面向对象的封装.样式 ...
- SPSS数据分析—单因素及多因素方差分析
t检验可以解决单样本.两个样本时的均值比较问题,但是对于两个以上样本,就不能用t检验了,而要使用方差分析.t检验是借助t分布,方差分析是借助F分布,基于变异分解的思想进行. 在算法上,由于线性模型的引 ...
- linux文件复制与权限赋值
文件file内容赋值到file2中 1. cp file1 file2 2. cat file1 > file2 3. cat < file1 > file2 4. dd if= ...
- c/c++ 软件集成 安装和可卸载软件
作为一个工程师应具备的一些能力: 1. 首先具备这款软件: >inno Setup 免费版还开源,良心货,妥妥的. 2. 这款软件上手也比较款,可自行参考使用文档 3.编译成功,生 ...
- Js获取后台集合List的值并操作html
功能:将后台传到前端JSP的List中的float型数值转换为百分比显示 HTML代码: <s:iterator value="colorConfigList" status ...
- Xib与View关联方法
1,在需要实例的地方 //加载一个uiview的作法 [LotteryInvestigationView *lotteryInvestigationView=[[[NSBundle mainBundl ...
- ESXi虚拟磁盘共享
因为项目需要需要一个磁盘共享的环境. 最先想到用iSCSI,两个客户端挂载同一个远端盘:这样确实可行,但是感觉太繁琐,想到既然是虚拟机环境,可以设置虚拟磁盘共享. 于是网上一番搜罗,确实有人这个做过, ...
- html,if标签使用
$vo.auth_id eq $vo2.auth_pid报错不能用 condition里面访问变量,不能用点的形式,应该用['']的形式访问
- NullReferenceException UnityEngine.Transform.get_localPosition
NullReferenceException UnityEngine.Transform.get_localPosition unity程序中,需要取得GO自身的Transform,出现如上空异常, ...