ClickOnce安全性和部署,无人机地面站开发软件安装过程
ClickOnce部署克服了部署中的3个主要问题更新应用程序时遇到的困难。 使用MicrosoftWindowsInstaller部署每当应用程序更新时用户都可安装更新和msp文件并将其应用于已安装的产品而使用ClickOnce部署你可自动提供更新。只会下载应用程序已更改的部分然后从新的并行文件夹中重新安装完整的、更新后的应用程序。对用户计算机的影响。 使用WindowsInstaller部署时应用程序通常依赖于共享组件可能会导致版本控制冲突而使用ClickOnce部署时每个应用程序都是独立的不能干扰其他应用程序。安全权限。 WindowsInstaller部署需要管理权限并且仅允许有限的用户安装ClickOnce部署使非管理用户也能进行安装并仅授予应用程序所需的代码访问安全性权限。过去这些问题有时会导致开发人员决定创建Web应用程序而不是基于Windows的应用程序为了便于安装而牺牲了丰富的用户界面。通过使用ClickOnce部署的应用程序你可获得这两种技术的优势。什么是ClickOnce应用程序ClickOnce应用程序是使用ClickOnce技术发布的任何WindowsPresentationFoundation(.xbap)、Windows窗体(.exe)、控制台应用程序(.exe)或Office解决方案(.dll)。可通过3种不同的方式发布ClickOnce应用程序通过网页、通过网络文件共享或通过旧式媒体如CD-ROM发布。ClickOnce应用程序可安装在最终用户的计算机上甚至在计算机脱机时也可在本地运行它也可在仅联机模式下运行而无需在最终用户的计算机上永久安装任何内容。有关详细信息请参阅选择ClickOnce部署策略。ClickOnce应用程序可自我更新它们可检查是否有更新版本可用并自动替换所有已更新的文件。开发人员可以指定更新行为网络管理员也可以控制更新策略如将更新标记为强制性更新。最终用户或管理员还可将更新回滚到早期版本。有关详细信息请参阅选择ClickOnce更新策略。ClickOnce应用程序是独立的因此安装或运行ClickOnce应用程序不会中断现有应用程序。ClickOnce应用程序是独立的每个ClickOnce应用程序都安装到安全的每用户、每应用程序缓存中并从这里运行。ClickOnce应用程序在Internet或Intranet安全区域中运行。必要时应用程序可以请求提升的安全权限。有关详细信息请参阅保护ClickOnce应用程序。ClickOnce安全的工作原理核心ClickOnce安全基于证书、代码访问安全性策略和ClickOnce信任提示。证书验证码证书用于验证应用程序发布者的真实性。通过使用验证码进行应用程序部署ClickOnce有助于防止有害程序将自己伪装成来自经证实的、值得信赖的来源的合法程序。另外还可使用证书对应用程序和部署清单进行签名以证明文件未被篡改。有关详细信息请参阅 ClickOnce和验证码。证书还可用于配置客户端计算机使其拥有受信任的发布者的列表。如果某个应用程序来自受信任的发布者则可在没有任何用户交互的情况下安装它。有关详细信息请参阅受信任的应用程序部署概述。代码访问安全性代码访问安全性可帮助限制代码对受保护资源的访问权限。在大多数情况下你可选择Internet或本地Intranet区域来限制权限。使用ProjectDesigner中的“安全性”页面来请求适合应用程序的区域。你还可使用受限权限调试应用程序来模拟最终用户体验。有关详细信息请参阅 ClickOnce应用程序的代码访问安全性。ClickOnce信任提示如果应用程序请求的权限超过区域允许的权限则系统会提示最终用户进行信任决定。最终用户可决定是否信任ClickOnce应用程序运行这些应用包括Windows窗体应用程序、WindowsPresentationFoundation应用程序、控制台应用程序、XAML浏览器应用程序和Office解决方案。有关详细信息请参阅如何配置ClickOnce信任提示行为。ClickOnce部署的工作原理核心ClickOnce部署体系结构基于两个XML清单文件它们是应用程序清单和部署清单。这些文件用于描述从哪里安装ClickOnce应用程序、如何更新这些应用程序以及何时更新它们。发布ClickOnce应用程序应用程序清单描述应用程序本身。其中包括程序集、构成应用程序的依赖项和文件、所需的权限以及提供更新的位置。应用程序开发人员使用VisualStudio中的“发布向导”适用于.NETCore和.NET5的发布工具或Windows软件开发工具包(SDK)中的清单生成和编辑工具(Mage.exe)来创建应用程序清单。有关详细信息请参阅使用ClickOnce部署.NET桌面应用程序使用ClickOnce部署.NETFramework桌面应用程序。部署清单描述应用程序的部署方式。其中包括应用程序清单的位置和客户端应运行的应用程序版本。备注在适用于.NETCore3.1和.NET5或更高版本的ClickOnce中使用dotnetmage.exe而不是Mage.exe。有关详细信息请参阅 ClickOncefor.NET。部署ClickOnce应用程序创建后部署清单会复制到部署位置。该位置可以是Web服务器、网络文件共享或旧式媒体如CD。应用程序清单和所有应用程序文件也会复制到部署清单中指定的部署位置。该位置可以与部署清单的部署位置相同也可以不同。在VisualStudio中使用“发布向导”时会自动执行复制操作。安装ClickOnce应用程序在将其部署到部署位置后最终用户可单击网页或文件夹中表示部署清单文件的图标来下载和安装应用程序。在大多数情况下最终用户会看到一个简单的对话框它要求用户确认安装然后继续安装无需额外干预即会启动应用程序。如果应用程序需要提升的权限或应用程序未使用受信任的证书进行签名则对话框还会要求用户授予权限然后才能继续安装。尽管ClickOnce安装按每位用户进行但如果先决条件要求具备管理员权限则可能需要权限提升。若要详细了解提升的权限请参阅保护ClickOnce应用程序。证书可在计算机或企业级别受到信任以便使用受信任的证书签名的ClickOnce应用程序可在无提示的情况下进行安装。若要详细了解受信任的证书请参阅受信任的应用程序部署概述。可将应用程序添加到用户的“开始”菜单中和“控制面板”的“添加或删除程序”组中。不同于其他部署技术不会有任何内容添加到“程序文件”文件夹或注册表并且无需管理权限即可安装备注也可阻止将应用程序添加到“开始”菜单和“添加或删除程序”组从而使其行为与Web应用程序类似。有关详细信息请参阅选择ClickOnce部署策略。更新ClickOnce应用程序应用程序开发人员创建应用程序的更新版本时会生成新的应用程序清单并将文件复制到部署位置通常是原始应用程序部署文件夹的同级文件夹。管理员会更新部署清单使其指向应用程序新版本的位置。备注可使用VisualStudio中的“发布向导”来执行这些步骤。对于.NETCore和.NET5发布工具提供了这些步骤。除了部署位置之外部署清单还包含一个更新位置网页或网络文件共享应用程序在这里检查更新版本。ClickOnce的Publish属性用于指定应用程序检查更新的时间和频率。可在部署清单中指定更新行为也可通过ClickOnceAPI在应用程序的用户界面上以用户选择的方式呈现。此外Publish属性还可用于将更新设置为强制执行或用于将应用程序回滚到较早版本。有关详细信息请参阅选择ClickOnce更新策略。第三方安装程序可自定义ClickOnce安装程序以便随应用程序一起安装第三方组件。必须拥有可再发行包.exe或.msi文件并使用中性语言产品清单和特定语言包清单来描述该包。有关详细信息请参阅创建Bootstrapper包。ClickOnce工具下表显示了可用于对应用程序和部署清单进行生成、编辑、签名和重新签名的工具。对于.NETCore和.NET5使用发布配置文件设置类似于MSBuild属性的选项。工具说明”项目设计器“-“安全”页对应用程序和部署清单进行签名。对于.NETCore和.NET5这些设置位于发布配置文件中。“项目设计器”-“发布”页为VisualBasic和VisualC#应用程序生成和编辑应用程序和部署清单。对于.NETCore和.NET5这些设置位于发布配置文件中。Mage.exe清单生成和编辑工具为VisualBasic、VisualC#和VisualC应用程序生成应用程序和部署清单。对应用程序和部署清单进行签名和重新签名。可从批处理脚本和命令提示符运行。dotnetmage.exe清单生成和编辑工具为.NET5、C#和VisualBasic应用程序生成应用程序和部署清单。用法与Mage.exe相同。对应用程序和部署清单进行签名和重新签名。可从批处理脚本和命令提示符运行。MageUI.exe图形化客户端中的清单生成和编辑工具生成和编辑应用程序和部署清单。对应用程序和部署清单进行签名和重新签名。GenerateApplicationManifest任务生成应用程序清单。可从MSBuild运行。有关详细信息请参阅 MSBuild参考。GenerateDeploymentManifest任务生成部署清单。可从MSBuild运行。有关详细信息请参阅 MSBuild参考。SignFile任务对应用程序和部署清单进行签名。可从MSBuild运行。有关详细信息请参阅 MSBuild参考。Microsoft.Build.Tasks.Deployment.ManifestUtilities开发自己的应用程序以生成应用程序和部署清单。下表显示了在以下浏览器中支持ClickOnce应用程序所需的.NETFramework版本。浏览者.NETFramework版本InternetExplorer2.0、3.0、3.5、3.5SP1、4Firefox2.0SP1、3.5SP1、4Chrome3.5MicrosoftEdge3.5使用ClickOnce部署.NETWindows桌面应用程序使用ClickOnce进行发布在解决方案资源管理器中右键单击该项目并选择“发布”或使用“生成”“发布”菜单项。如果先前配置了任何发布配置文件则“发布”页会显示。选择“新建”。在“发布”向导中选择“文件夹”。在“特定目标”页上选择“ClickOnce”。输入路径或选择“浏览”以选择发布位置在“安装位置”页中选择用户安装应用程序的位置在“设置”页中可以提供ClickOnce所需的设置。如果选择从UNC路径或网站安装则可以通过此页指定应用程序是否可脱机使用。选中时此选项会在用户“开始”菜单上列出应用程序并允许在发布新版本时自动更新应用程序。默认情况下可以从安装位置获取更新。如果希望将另一个位置用于更新则可以使用“更新设置”链接指定该位置。如果不希望应用程序可脱机使用则它会从安装位置运行。如果选择从CD、DVD或USB盘进行安装则还可以通过此页指定应用程序是否支持自动更新。如果选择支持更新则“更新位置”是必填项并且必须是有效的UNC路径或网站。在此页中能够通过页面顶部的链接指定要包含在安装程序中的“应用程序文件”、要安装的“必备组件”包以及其他“选项”此外还可以在此页中设置发布版本以及版本是否会随着每次发布而自动递增。备注发布版本号对于每个ClickOnce配置文件都是唯一的。如果计划使用多个配置文件则需要记住这一点。在“签名清单”页上可以指定是否应对清单进行签名以及要使用的证书。在“配置”页上可以选择所需的项目配置。选择“完成”以保存新ClickOnce发布配置文件。在“摘要”页上选择“发布”VisualStudio会生成项目并将其发布到指定发布文件夹。此页还显示配置文件摘要。若要重新发布请选择“发布”。