
在 C#中实现软件自动升级
丽水市汽车运输集团有限公司信息中心 苟安廷
winform 程序相对 web 程序而言,功能更强大,编程更方便,但软件更新却相当麻烦 ,
要到客户端一台一台地升级,本文结合实际情况,通过软件实现自动升级,弥补了这一缺
陷,有较好的参考价值。
由于程序在运行时不能用新的版本覆盖自己,因此,我们将登录窗口单独做成一个可
执行文件,用户登录时,从网上检测是否有新的主程序,如果有,则从后台下载并覆盖老
的版本,用户输入正确的用户名和密码后,通过参数将必要的信息(如用户名、密码等)
传递给主程序,实现登录,我们还是以实际例子来说明。
创建一个项目,不妨取名为 MainPro,作为主程序,切换到代码窗口,看到如下一段
代码:
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
为了接收参数,我们添加两个静态变量 m_UserName 和 m_Password 用于存放用
户名和密码,并修改 Main 函数为:
private static string m_UserName,m_Password;
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
if(args.Length==2)//有参数输入,你还可以根据实际情况传入更多参数
{
//记录下用户名和密码,供软件使用
m_UserName=args[0];
m_Password=args[1];
Application.Run(new Form1());
}
else
{
MessageBox.Show("不能从这里启动");
}
}
为了显示登录是否正确,Load 事件的代码修改为:
private void Form1_Load(object sender, System.EventArgs e)