使用clickone部署vs2005中的winform应用程序(转载)

来源:互联网 发布:对网络教育的看法英文 编辑:程序博客网 时间:2024/05/21 21:48

一、 部署步骤

1.       创建一个WinForm程序

1.1         打开VS2005,新建一个WinForm项目。

1.2         做一个简单的Form,运行成功。

2.       发布程序

2.1  在项目上点右键选择“属性”,会看到该项目的属性列表。

2.2左边的目录中选择“发布”,可以看到关于发布的属性。

2.3首先是发布位置,默认是http://localhost/项目名/,也可以更改,选择 “文件系统”、“本地IIS”、“FTP站点”、“远程站点”中的任意一个子目录。

2.4  安装模式和设置

1)       启动方式默认为可以脱机使用,也可以更改为只能联机。

2)       应用程序文件:

点击“显示所有文件”可以看到所有应用程序文件以及bin目录下有的文件,系统会自动选择哪些该包括,哪些该排除。如果有必要,可以更改默认设置。

3)       系统必备:

选择要安装的系统必备组件,安装位置可以选择供应商网站、应用程序位置或任意一个URL或UNC路径(例:http://www.microsoft.com/myapplication或//server/myapplication)。

4)       更新:

可以在这里设置应用程序是否应该检查更新、在何时检查更新,指定更新的频率,指定更新的最低版本,指定更新位置等。

5)       选项:

指定发布语言、发行者名称、产品名称、部署网页等发布相关的选项。

2.5  发布版本:

显示该次发布的版本号,可以修改,默认每次发布修订号自动递增。

2.6  发布:

可以通过“发布向导”或选择“立即发布”。发布成功后默认打开发布页,可以从此页面安装程序。一次安装后,会自动在程序目录下加一个快捷方式。如果发布时更新选择了自动更新,那么每次打开程序前(或程序后,可设置)会自动检查是否有更新的版本,如果有,可以选择更新或跳过。如果跳过了更新,以后要更新就必须到第一次更新的发布页面手动安装更新。当然,这些功能也可以在程序中通过编程实现,在文档后面的内容中会有所提及。

3.       安装

在本机或其他任意一台可以访问到发布网页的机器上打开IE,访问发布页安装程序。

4.       删除、还原

在“控制面板”中选择“添加或删除程序”,找到程序点击“删除”,可以选择还原到上一个版本的程序或是删除程序。

 

 

 

 

 

 

 

 

 

 

 

二、 实例

1.       新建项目“DemoClickOnce”。

1.1  新建窗体frmIE_Load向窗体中添加几个控件

grpTopGroupBoxtxtAddress TextBoxbtnLinkBottonwebBrowser1 WebBrowser

1.2  双击窗体,在frmIE_Load事件中输入代码:

txtAddress.Text = "http://tangtang.oracle.com.cn";

1.3  双击btnLink,在btnLink_Click事件中输入代码:

webBrowser1.Url = new Uri(txtAddress.Text.Trim());

webBrowser1.Update();

1.4  运行程序,画面如下:

2.       发布项目

2.1    设置发布相关的属性,发行者名称为candy,产品名称为clickOnce,其他全部用默认。

2.2    点击立即发布,发布成功后自动打开发布页http://candisin/DemoClickOnce/publish.htm

3.       安装

3.1       在本机或其他任意一台可以访问到发布网页的机器上打开IE,访问发布页http://candisin/DemoClickOnce/publish.htm,机器名candisin可能需要替换为IP地址或其他虚拟域名,点击安装。

3.2       成功安装后,程序会自动启动。而开始菜单中所有程序目录中会出现一个快捷方式,指向该程序。该程序的默认安装路径通常为:C:/Documents and Settings/candisin/Local Settings/Apps/2.0/0E6XTHOH.A0J/6DEOBQLW.B2K

4.       版本更新,修改程序

4.1    向窗体frmIE_Load中添加几个控件/组件:

picReflashPictureBoxtimerUpdateTimertoolTipUpdateToolTip

4.2    增加引用:

using System.Deployment.Application;

4.3    增加成员变量:

/// <summary>

/// 更新标志:0,未检测到更新;1,已检测到更新;

/// </summary>

private string flagUpdate = "0";

4.4    增加方法:

private void UpdateApplication()

{

if (ApplicationDeployment.IsNetworkDeployed == true)

  {

     ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;

     Text = "当前版本:" + ad.CurrentVersion;

     toolTipUpdate.SetToolTip(this, Text);

     UpdateCheckInfo checkInfo = ad.CheckForDetailedUpdate();

     if (checkInfo.UpdateAvailable == true)

     {

       flagUpdate = "1";

       toolTipUpdate.SetToolTip(this, "检测到新的版本:" + checkInfo.AvailableVersion);

        if (MessageBox.Show("检测到新的版本:" + checkInfo.AvailableVersion + ",现在需要更新吗?/n您也可以稍后手工更新到最新版本!", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)

         {

            ad.Update();

            MessageBox.Show("更新完毕,将要重新启动程序!");

            Application.Restart();

         }

      }

  }

}

4.5    增加或修改事件

private void frmIE_Load(object sender, EventArgs e)

{

   txtAddress.Text = "http://tangtang.oracle.com.cn";

   UpdateApplication();

}

 

private void picReflash_Click(object sender, EventArgs e)

{

    UpdateApplication();

}

 

private void timerUpdate_Tick(object sender, EventArgs e)

{

    if (timerUpdate.Enabled)

    {

        if (flagUpdate == "0")

        {

            UpdateApplication();

        }

    }

}

4.6    运行程序

5.       二次发布

6.       客户端更新

6.1    客户端单击打开程序时,系统会先检测是否有更新的版本,如果有,则弹出页面询问是否下载。

6.2    选择确定,则自动更新到了新版本。

6.3    此时,若再有新的更新发布,程序可以自动检测到更新,并询问是否更新到新的版本。

6.4    需要更新点击“是”则立即更新,更新完后程序会重新启动。还可以点击“否”暂时不更新,之后程序直到关闭都不再自动提醒,需要手工点击刷新图标更新程序。

原创粉丝点击