• 使用Visual Studio 2010来部署Windows应用程序


    在Visual Studio过去的一些版本中,你只能使用“安装向导”来部署你的应用程序。在最新的版本中,微软对ClickOnce模型做了一些调整,以鼓励开发者使 用这个模型。在Visual Studio 2010中,通过ClickOnce你可以很轻松地部署你的应用程序。那么,具体应该怎样做呢?请继续阅读本文,我们接下来将会为您讲述具体的步骤:

    步骤1:通过解决方案资源管理器发布一个项目

    在解决方案资源管理器中,右键单击那个你想要部署的项目。然后,你会看到一个可以“Publish”你的项目的选项。选择这个选项就可以启动one-click向导了。

    Publish”你的项目的选项

    步骤2:选择你要部署的应用程序的发布位置

    这个向导启动以后,它会提示你:你想把你的软件发布到哪里。实际上,你有很多的选择,不止局限于你的硬盘驱动器。你可以发布到一个文件共享服务器 上,也可以通过ftp发布到互联网上,甚至可以直接发布到Web站点上。微软那带有“魔力”的自动化功能可以搞定必须要一起发布的所有依赖程序集。在这个 例子中,我们使用默认的设置。

    默认设置

    步骤3:选择用户安装这个应用程序的方式

    接下来这个步骤可以给你提供很大的灵活性,因为这个步骤可以让你指定用户安装这个应用程序的方式。

    设置

    由于有了互联网和其他的网络媒介,你不再局限于必须通过物理介质来安装应用程序了。虽然你可以选择了“From a Website”,但是你只能使用IIS,如下图所示。就像它说明的那样,在部署这个应用程序的机器上,你必须安装IIS6或更高的版本,并且,你还必须 是那台机器的管理员。

    自定义

    如果你刚好有一个IIS站点,并且你还是管理员,那么你可以把它输入到“Specify the URL”域中。点击“Next”以后,这个向导会提示你这个应用程序是否只能在线使用,或者说,这个应用程序是否还可以直接在用户的机器上运行(离线)

    离线

    当然,你也可以通过一个CD来安装这个应用程序,这是默认的选项。在我们的例子中,我们保留了这个选项,所以我们可以把这个应用程序打包到一个zip文件中,然后把这个文件发送给用户。

    步骤4:这个应用程序从哪里检查更新

    Click-Once的一个优势是它提供了软件更新机制,这就是说,无论何时,当一个新的修订版本可用的时候,用户都可以轻松地更新他们的软件。在我们的例子中,我们选择了发布到一个Web站点,所以我们可以检查更新。

    检查更新

    步骤5:我们已经完成了!

    最后一个界面会告诉我们要部署的文件会被发布到哪里,以及这个应用程序在客户机器上的行为。

    文件被部署在哪里?

    如果你点击了“Finish”按钮,那么在你的机器上,包含你的部署文件的文件夹会自动弹出来。如果你要通过CD来安装你的应用程序,它甚至可以给你提供一个autorun文件,只要把这张CD放入光驱,它就会自动地安装你的应用程序了。

    你可能也注意到了,发布你的应用程序会在你的项目中添加一个扩展名是pfx的文件。这个文件是一个Authenticode Certificate。实际上,它就是大家熟悉的“self-cert”,它可以发挥作用,但是它无法识别出你是一个发布者。你必须要从Thawte 或 Verisign获取更安全的证书才可以。但是,对于我们的目标来说,一个“self-cert”已经足够了。要更深入地了解ClickOnce的签名机 制,可以参考MSDN上的这篇文章:http://msdn.microsoft.com/en-us/library/aa730868%28VS.80%29.aspx

    理解部署结构

    ClickOnce不只是创建了一个一次性的安装解决方案。它还可以检查更新,在客户端实时地更新你的应用程序,这样的话,用户就可以通过 ClickOnce机制获得修订和变更的好处了。使用ClickOnce,你可以选择更新策略。这个策略可以决定ClickOnce检查更新的方式。如果 你在步骤4种选择了检查更新,那么,在你的发布目录中,.application文件将会包含下面这个小节:

    1. <deployment install="true" mapFileExtensions="true"> 
    2.   <subscription> 
    3.     <update> 
    4.       <beforeApplicationStartup /> 
    5.     </update> 
    6.   </subscription> 
    7.   <deploymentProvider codebase="http://www.microgold.com/TestDeployment.application" /> 
    8. </deployment> 

    这个策略会告诉这个应用程序,应该在应用程序启动以前检查更新。如果存在一个更新,它会下载这个更新,然后再启动这个应用程序。那么,还有其他的可用策略吗?

    你可以让运行中的应用程序每10个小时检查一次更新。如果有一个更新可用,会在用户下次运行这个应用程序的时候提示用户进行更新。

    1. <subscription> 
    2.       <update> 
    3.          <expiration maximumAge="10" unit="hours" /> 
    4.       </update> 
    5. </subscription> 

    如果你的要求是只让高于某个版本的用户安装这个更新,你可以在ClickOnce的.application配置文件中添加下面这个deployment标签

    1. <deployment install="true" minimumRequiredVersion="5.1.0.0"> > 
    2.     <subscription> 
    3.       <update> 
    4.         <beforeApplicationStartup /> 
    5.       </update> 
    6.     </subscription> 
    7.     <deploymentProvider codebase="http://www.microgold.com/TestDeployment.application" /> 
    8. </deployment> 

    注意:每次你通过Visual Studio发布一个项目的时候,它都会自动地为你创建一个新的修订版本。例如,下面那个1.0.0.1版本的文件夹就是自动生成的(在文件夹名字中的数 字分别代表主版本号,次版本号,内部版本号,和修订版本号)。.application文件将指向最新的修订版本文件夹 (TestDeployment_1_0_0_1)。

    修订版本

    TestDeployment_1_0_0_1文件夹将会包含最新的程序集。实际上,如果我们把 TestDeployment.exe.deploy重命名为TestDeployment.exe,就可以运行这个应用程序了。如果这个项目存在依赖程 序集,它们也会被部署到这个文件夹中(同样,也是以.deploy作为扩展名),注意,每个修订版本都有自己的.application文件。这可以让你 为不同的修订版本指定不同的部署策略。

    .manifest文件包含你正在部署的程序集的属性(attribute)。它还包含重要的安全信息(在部署平台上,这个程序集必须要获得的权限)。.manifest文件还包含发布者的标识和强名签名

    总结

    如果你的应用程序发布了,那么用户就可以通过运行setup文件来安装这个应用程序了。这个应用程序可以按照你在.application文件中设 置的更新策略自动地检查更新。Visual Studio提供的这些强大的特性可以让部署.NET应用程序快如闪电,而且,持续地对应用程序进行更新也变得更加轻松了。

  • 相关阅读:
    [bzoj1072][SCOI2007][排列perm] (状态压缩+数位dp+排列去重)
    [bzoj2461][BeiJing2011][符环] (括号配对+记忆化搜索+高维dp)
    [bzoj4027][HEOI2015][兔子与樱花] (树形dp思想+玄学贪心)
    [bzoj1925][Sdoi2010][地精部落] (序列动态规划)
    [bzoj1004][HNOI2008][Cards] (置换群+Burnside引理+动态规划)
    [bzoj1003][ZJOI2006][物流运输] (最短路+dp)
    [spoj104][Highways] (生成树计数+矩阵树定理+高斯消元)
    [bzoj1002][FJOI2007 轮状病毒] (生成树计数+递推+高精度)
    [bzoj 1001][Beijing2006]狼抓兔子 (最小割+对偶图+最短路)
    [模拟赛FJOI Easy Round #2][T3 skill] (最小割+最大权闭合子图(文理分科模型))
  • 原文地址:https://www.cnblogs.com/xuefeng1982/p/2027662.html
Copyright © 2020-2023  润新知