当前位置: 首页 > news >正文

如何用oss做视频网站自建网站平台有哪些

如何用oss做视频网站,自建网站平台有哪些,seo诊断网站免费诊断平台,西安哪家公司做的网站好一、自动更新的实现 让客户端实现自动更新#xff0c;通常做法是在客户端部署一个单独的自动更新程序。主程序启动后#xff0c;访问服务端#xff0c;检查配置文件是否有更新版本#xff0c;有更新版本就启动更新程序#xff0c;由更新负责下载更新版本#xff0c;并更新…一、自动更新的实现 让客户端实现自动更新通常做法是在客户端部署一个单独的自动更新程序。主程序启动后访问服务端检查配置文件是否有更新版本有更新版本就启动更新程序由更新负责下载更新版本并更新客户端程序流程如下 当流程进行到红色部分的是后就调用更新程序进行更新。 1版本判断 客户端和服务端都部署同一个版本文件客户端登陆时发送验证给服务端判断版本是否一致。 Version.xml代码 iq xmlnshttp://www.dynastech.com/xmtp from*domcool.local/updater to*domcool.local/updater typeget id508f3e88-4bb0-4585-a5c6-cc41ef57fef3query xmlnshttp://www.dynastech.com/xmtp/disco#update version20090922 lastUpdateTime2009-09-22 fileUrlhttp://172.0.0.1/UCCompanion/UCCompanionSetup(0922).zip x xmlnshttp://www.dynastech.com/xmtp/item/x/query /iq 版本文件主要比较服务端Version.xml文件和客户端Version.xml文件中Version版本号是否一致如果服务端Version属性 大于客户端的Version属性则通过服务端的fileUrl属性获取新版本的下载地址。供更新程序使用。 2删除原有更新包 所有客户端更新文件均下载到C:\Documents and Settings\当前用户名\Local Settings\Temp 文件夹内当客户端运行后首先判 断是否有新更新包需要下载如果没有则判断该临时文件夹内是否有旧有安装文件如果存在则删除旧有安装文件。 private void RemoveOldSetupFile(){try{string temp System.Environment.GetEnvironmentVariable(TEMP);string folder new DirectoryInfo(temp).FullName;if (File.Exists(folder \ setupName .exe)){File.Delete(folder \ setupName .exe);}if (File.Exists(folder \ setupName .msi)){File.Delete(folder \ setupName .msi);}}catch { }} 备注关于获取系统特殊文件夹的方法见博客http://www.cnblogs.com/thornfield_he/archive/2009/09/22/1571719.html 3启动下载程序 下载程序和客户端程序是相互独立的可以通过客户端开启新线程启动下载程序。下载程序在文件下载结束后可以关掉客户端程序并开启新线程启动安装程序进行安装。 private void Update() {if (ShouldUpdate(query.Version, this.version)){MessageBox.Show(请更新客户端文件到版本[ query.Version ], 更新提示, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);System.Diagnostics.Process.Start(Application.StartupPath \AutoUpdater.exe, query.FileUrl);}else { RemoveOldSetupFile(); } }private bool ShouldUpdate(string serverVersion, string localVersion) {if (!string.IsNullOrEmpty(serverVersion) !string.IsNullOrEmpty(localVersion)){return serverVersion.CompareTo(localVersion) 0;}return true; } 调用AutoUpdater.exe文件时需要传入文件下载地址。 System.Diagnostics.Process.Start(Application.StartupPath \AutoUpdater.exe, query.FileUrl); 4下载程序代码 下载程序界面 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Net; using System.IO; using System.Threading; using System.Diagnostics;namespace AutoUpdater {public partial class MainForm : Form{private WebClient client;private string URl;private string fileName;private string path;private const string applicationFile Setup;public MainForm(string url){InitializeComponent();this.URl url;client new WebClient();client.DownloadProgressChanged new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);client.DownloadFileCompleted new AsyncCompletedEventHandler(client_DownloadFileCompleted);client.Proxy WebRequest.DefaultWebProxy;client.Proxy.Credentials new NetworkCredential();this.Hide();//Thread thread new Thread(UpdateFile);//Thread.Sleep(15000);//thread.Start();UpdateFile();}public MainForm(){InitializeComponent();}/// summary/// 下载完成调用/// /summary/// param namesender/param/// param namee/paramvoid client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e){label1.Text 文件接收完成;UnZip();RunUpdate();}/// summary/// 下载进度条/// /summary/// param namesender/param/// param namee/paramvoid client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e){this.progressBar1.Value e.ProgressPercentage;}/// summary/// 开始下载/// /summaryprivate void StartDownload(){fileName URl.Substring(URl.LastIndexOf(/) 1, URl.Length - URl.LastIndexOf(/) - 1);path GetTempFolder();try{WebRequest myre WebRequest.Create(URl);}catch (Exception ex){MessageBox.Show(ex.Message, Error);}try{label1.Text 开始下载文件...;client.DownloadFileAsync(new Uri(URl), path \ fileName);}catch (WebException exp){label1.Text exp.Message;}}/// summary/// 解压压缩包格式必须是*.zip,否则不能解压/// 因为是调用Windows内部api进行解压只能够识别zip压缩包/// 必须添加C:\WINDOWS\system32\shell32.dll的引用/// /summaryprivate void UnZip(){try{Shell32.ShellClass sc new Shell32.ShellClass();Shell32.Folder SrcFolder sc.NameSpace(this.path \ this.fileName);Shell32.Folder DestFolder sc.NameSpace(this.path);Shell32.FolderItems items SrcFolder.Items();DestFolder.CopyHere(items, 20);}catch (Exception ex){MessageBox.Show(ex.Message);}}/// summary/// 获取下载文件夹地址及解压文件存放地址/// 此地址默认为C:\Documents and Settings\当前用户名\Local Settings\Temp 文件夹/// /summary/// returns/returnsprivate string GetTempFolder(){string folder System.Environment.GetEnvironmentVariable(TEMP);return new DirectoryInfo(folder).FullName;}/// summary/// 开始下载文件/// /summaryprivate void UpdateFile(){this.Hide();//如果临时文件夹存在setup安装文件就直接调用安装文件if (File.Exists(GetTempFolder() \ applicationFile .exe) File.Exists(GetTempFolder() \ applicationFile .msi)){label1.Text 开始下载文件...;this.progressBar1.Value this.progressBar1.Maximum;label1.Text 文件接收完成;RunUpdate();}//如果临时文件夹不存在setup安装文件就从网络下载else{RemoveSetupFile();StartDownload();}}/// summary/// 清除旧有已下载的安装文件/// /summaryprivate static void RemoveSetupFile(){try{string temp System.Environment.GetEnvironmentVariable(TEMP);string folder new DirectoryInfo(temp).FullName;if (File.Exists(folder \ applicationFile .exe)){File.Delete(folder \ applicationFile .exe);}if (File.Exists(folder \ applicationFile .msi)){File.Delete(folder \ applicationFile .msi);}}catch { }}/// summary/// 下载完毕开始执行更新程序/// /summaryprivate void RunUpdate(){try{foreach (Process p in Process.GetProcesses()){if (p.ProcessName.ToLower().StartsWith(uccompanion)){if (MessageBox.Show(UCCompanion正在运行是否关闭当前程序安装更新, 安装UCCompanion, MessageBoxButtons.YesNo, MessageBoxIcon.Question) DialogResult.Yes){p.Kill();Process.Start(GetTempFolder() \ applicationFile .exe);}else{MessageBox.Show(UCCompanion下载完成将在下次启动时提醒更新);}}}}catch (Exception ex){MessageBox.Show(ex.Message);}finally{this.Close();}}/// summary/// 重载WindProc判断点击关闭按钮(X)时隐藏程序界面/// /summary/// param namemsg/paramprotected override void WndProc(ref Message msg){const int WM_SYSCOMMAND 0x0112;const int SC_CLOSE 0xF060;if (msg.Msg WM_SYSCOMMAND ((int)msg.WParam SC_CLOSE)){this.Hide();return;}base.WndProc(ref msg);}/// summary/// 双击图标弹出界面/// /summary/// param namesender/param/// param namee/paramprivate void icon_notify_MouseDoubleClick(object sender, MouseEventArgs e){this.Show();this.WindowState FormWindowState.Normal;}/// summary/// /// /summary/// param namesender/param/// param namee/paramprivate void MainForm_SizeChanged(object sender, EventArgs e){if (this.WindowState FormWindowState.Minimized){this.Hide();}}private void MainForm_Load(object sender, EventArgs e){this.Hide();}}static class Program{/// summary/// 启动接收传入网址作为参数/// /summary/// param nameagr/param[STAThread]static void Main(string[] agr){if (agr.Length 1 agr[0].StartsWith(http://)){MainForm form new MainForm(agr[0]);Application.Run(form);}}} } 程序代码 将AutoUpdater项目生成的文件添加到客户端文件中在客户端的Update()方法里调用updater实现更新文件的下载。 以上就已经实现了自动更新功能下面将讨论文件安装包的制作。 二、安装包的制作 1创建安装项目     2鼠标右击Setup项目选择视图,可以看到制作安装包常见的视图有以下几个 最常用的视图有“文件系统”“用户界面”和“启动条件”。 3指定安装属性 鼠标左键单击项目名称,记住是左键单击,然后点击属性标签,注意:不是右击的属性     a.需要注意的是Version属性每次版本更新时Version值必须后面的版本大于前面的版本。每次更改Version值时Projectcode会更改一次。 其中你修改安装项目的版本号时,比如从v1.00 到1.01,在你再次生成项目的时候,会提示你是否允许修改ProductCode,选择是,程序会自动修改ProductCode,选择否将保持相同的ProductCode,即不能自动卸载旧的版本. b.在以后版本中要确认和以前的版本两个版本有不同的ProductCode和相同的UpgradeCode c.manufacturer属性指定制造商名称。 d.detectnewerinstalledversion属性选择为true e.removepreviousversions选择为true   鼠标左键单击项目名称,此次是右键单击,然后点击属性弹出属性页选择“系统必备”。 在打开的系统必备页中,选中如下中的选择项,这个很重要!!!!!1!!!!!选上以后,在生成的安装文件包中包含.netframework组件.(这个选项默认是没有选中的)。   4文件系统视图 文件系统视图左侧根目录树下有3个子节点。 a.应用程序文件夹将所有待打包的应用程序的可执行文件和相应的类库和组件拖动到该目录下。该目录可以创建子目录项目安装完毕以后的文件夹结构会和该目录下结构一致。 如图 然后右击左边的应用程序文件夹打开属性对话框,修改文件释放路径[ProgramFilesFolder][Manufacturer]\[ProductName]。安装程序默认安装目录会是c:\programm file\制造商名称\安装解决方案名称; b.用户的“程序”菜单和用户桌面用于在开始菜单创建文件快捷方式 在应用程序文件夹中将需要生成的快捷方式的文件添加快捷方式并拖动到用户的“程序”菜单和用户桌面       c.添加文件卸载功能 在添加你的应用程序项目的时候多添加一个msiexec.exe进去,这个文件在c:\windows\system32文件夹下。 为其在程序菜单添加一个快捷方式把他的名字改成Uninstall.exe,指定Icon快捷方式显示的图标。然后下面我们要的做的就是查找这个部署项目的ProductCode了,鼠标左键单击项目名称,记住是左键单击,然后点击属性标签,注意:不是右击的属性,这个区别很大,这时你就可以看到ProductCode了       然后打开你创建的那个卸载程序的快捷方式的属性对话框,在Aguements属性中输入/x {ProductCode} 5用户界面视图 在“欢迎使用”后“安装文件夹”前添加“许可协议”对话框。 licensefile选择协议协议的格式为rtf。 6启动条件视图 为启动安装程序制定最低framework要求。 7实现安装、卸载过程中的其他额外的操作。比如安装结束后启动程序卸载程序后同时删除网络下载打安装包等功能。 a.新建一个空的项目InstallCompenent,步骤为:解决方案-右键添加-新建项目-选择空项目-输入名称InstallCompenent-确定,完成项目的添加. b.在InstallCompenent项目中右键-添加-新建项-选择安装程序类-输入名称Installer,完成installer类的添加. 修改代码为: using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Configuration.Install; using System.Reflection; using System.IO;namespace InstallCompenent {[RunInstaller(true)]public partial class UccompanionInstaller : Installer{private const string zipPacket UCCompanionSetup(0918).zip;/// summary /// 应用程序入口 /// /summary public static void Main(){}/// summary /// 构造函数 /// /summary public UccompanionInstaller(){InitializeComponent();}/// summary /// 重写安装完成后函数 /// 实现安装完成后自动启动已安装的程序 /// /summary /// param namesavedState/param protected override void OnAfterInstall(IDictionary savedState){base.OnAfterInstall(savedState);Assembly asm Assembly.GetExecutingAssembly();string path asm.Location.Remove(asm.Location.LastIndexOf(\\)) \\;System.Diagnostics.Process.Start(path \\UCCompanion.exe);}/// summary /// 重写安装过程方法 /// /summary /// param namestateSaver/param public override void Install(IDictionary stateSaver){base.Install(stateSaver);}/// summary /// 重写安装之前方法 /// /summary /// param namesavedState/param protected override void OnBeforeInstall(IDictionary savedState){base.OnBeforeInstall(savedState);}/// summary /// 重写卸载方法 /// 卸载程序后也删除程序的安装包/// /summary /// param namesavedState/param public override void Uninstall(IDictionary savedState){string temp System.Environment.GetEnvironmentVariable(TEMP);string folder new DirectoryInfo(temp).FullName;if (File.Exists(folder \setup.exe)){File.Delete(folder \setup.exe);}if (File.Exists(folder \setup.msi)){File.Delete(folder \setup.msi);}if (File.Exists(folder \zipPacket)){File.Delete(folder \zipPacket);}base.Uninstall(savedState);}/// summary /// 重写回滚方法 /// /summary /// param namesavedState/param public override void Rollback(IDictionary savedState){base.Rollback(savedState);}} }   c.在安装项目中右键-添加项目输出-选择项目-InstallCompenent.完成主输出项目的添加. d.打开自定义操作编辑器,在安装-右键-添加自定义操作-选择应用程序文件夹-选择主输出来自InstallCompenent,完成添加. 好了点击“生成解决方案”即可以生成带有卸载功能的安装程序了。   转自http://blog.csdn.net/myhuli120/article/details/6927588转载于:https://www.cnblogs.com/elim/p/3968333.html
http://www.zqtcl.cn/news/3993/

相关文章:

  • 商城网站设计公司哪家装修公司比较好的
  • 大华天途建设集团网站python前端开发需要学哪些东西
  • jsp网站开发引用文献如何创建属于自己的网站
  • 网站建设公司山西网站建设seo网络推广
  • 北京网站排名方案网上怎样找装修设计师
  • 曲周县建设局网站wordpress模版仿制
  • 青岛找网站建设公司好网站建设策划方案如何写
  • 网站登录验证码显示不出来网站二级域名是什么
  • 手把手教你做网站7做茶叶网站的目的和规划
  • 免费微网站建设wordpress 信息网站
  • 温州免费做网站网络营销课程心得体会
  • 做动画相册在哪个网站好软件开发文档管理软件
  • 青岛黄岛区做网站设计的网站建设企业的市场分析
  • 好的做网站架构的书wordpress 圆角图片
  • 人像摄影网站有哪些wordpress登陆图标修改
  • 周口网站设计福安做网站最好
  • 怎么做本地婚姻介绍网站网站建设与管理和电子商务哪个好
  • 自己做网站模版网站建设包括什么科目
  • 网站配置域名小程序商城排名
  • 武昌做网站公司华为云专业网站定制
  • 做网站做得好的公司有哪些新网站不被收录的原因
  • 如何建立自己网站视频教程wordpress 2016
  • 窗帘网站建设策划书邢台网站改版定制
  • 湖南畅想网站建设怎么早网站上放广告
  • 单产品网站产品营销型网站建设
  • nginx wordpress 主题整站seo排名
  • 网站编程零基础入门线上营销的重要性
  • 网站内容路由器做php网站吗
  • 余姚网站推广公司科技布是什么面料
  • 网站开发软件有哪些店铺设计案例