<deployment> 元素(ClickOnce 部署)
标识用于部署更新并向系统公开的特性。
语法
<deployment
install
minimumRequiredVersion
mapFileExtensions
disallowUrlActivation
trustUrlParameters
>
<subscription>
<update>
<beforeApplicationStartup/>
<expiration
maximumAge
unit
/>
</update>
</subscription>
<deploymentProvider
codebase
/>
</deployment>
元素和属性
deployment
元素是必需的,它位于 urn:schemas-microsoft-com:asm.v2
命名空间中。 元素具有以下属性。
属性 | 说明 |
---|---|
install |
必需。 指定此应用程序是否在 Windows 的“开始”菜单和“控制面板”的“添加或删除程序”应用程序中定义状态 。 有效值为 true 和 false 。 如果为 false ,ClickOnce 将始终从网络中运行此应用程序的最新版本,并且不会识别 subscription 元素。 |
minimumRequiredVersion |
可选。 指定可在客户端上运行的此应用程序的最低版本。 如果应用程序的版本号低于部署清单中提供的版本号,应用程序将不会运行。 版本号必须以 N.N.N.N 格式指定,其中 N 是无符号整数。 如果 install 属性为 false ,则不能设置 minimumRequiredVersion 。 |
mapFileExtensions |
可选。 默认为 false 。 如果为 true ,则部署中的所有文件都必须具有 .deploy 扩展名。 ClickOnce 从 Web 服务器下载这些文件后,会立即去除这些文件的扩展名。 如果使用 Visual Studio 发布应用程序,它会自动将此扩展名添加到所有文件。 此参数允许从阻止传输以“不安全”扩展名(如 .exe)结尾的文件的 Web 服务器下载 ClickOnce 部署中的所有文件。 |
disallowUrlActivation |
可选。 默认为 false 。 如果 true ,则阻止已安装的应用程序通过单击 URL 或在浏览器中输入 URL 的方式启动。 如果 install 属性不存在,则忽略此属性。 |
trustURLParameters |
可选。 默认为 false 。 如果为 true ,则允许 URL 包含传入应用程序的查询字符串参数,非常类似于将命令行参数传递到命令行应用程序。 有关详细信息,请参阅如何:在联机 ClickOnce 应用程序中检索查询字符串信息。如果 disallowUrlActivation 属性为 true ,则必须从清单中排除 trustUrlParameters ,或将其显式设置为 false 。 |
deployment
元素还包含以下子元素。
订阅
可选。 包含 update
元素。 subscription
元素没有属性。 如果 subscription
元素不存在,ClickOnce 应用程序将永远不会扫描更新。 如果 deployment
元素的 install
属性为 false
,则将忽略 subscription
元素,因为从网络启动的 ClickOnce 应用程序始终使用最新版本。
update
必需。 此元素是 subscription
元素的子元素,并且包含 beforeApplicationStartup
或 expiration
元素。 beforeApplicationStartup
和 expiration
不能在同一部署清单中同时指定。
update
元素没有属性。
beforeApplicationStartup
可选。 此元素是 update
元素的子元素,没有属性。 如果 beforeApplicationStartup
元素存在,并且客户端处于联机状态,则在 ClickOnce 检查更新时,应用程序将被阻止。 如果此元素不存在,ClickOnce 将首先根据为 expiration
元素指定的值扫描更新。 beforeApplicationStartup
和 expiration
不能在同一部署清单中同时指定。
expiration
可选。 此元素是 update
元素的子元素,没有子级。 beforeApplicationStartup
和 expiration
不能在同一部署清单中同时指定。 当执行更新检查并检测到更新版本时,新版本将在现有版本运行时缓存。 然后,新版本将在下一次启动 ClickOnce 应用程序时安装。
expiration
元素支持以下属性。
属性 | 说明 |
---|---|
maximumAge |
必需。 标识当前更新在应用程序执行更新检查之前的最长使用时间。 时间单位由 unit 属性确定。 |
unit |
必需。 标识 maximumAge 的时间单位。 有效单位为 hours 、days 和 weeks 。 |
deploymentProvider
对于 .NET Framework 2.0,如果部署清单包含 subscription
部分,则此元素是必需的。 对于 .NET Framework 3.5 及更高版本,此元素是可选的,并且将默认为发现部署清单的服务器和文件路径。
此元素是 deployment
元素的子元素,并且包含以下元素。
属性 | 说明 |
---|---|
codebase |
必需。 以统一资源标识符 (URI) 形式标识用于更新 ClickOnce 应用程序的部署清单的位置。 此元素还允许转发基于 CD 的安装的更新位置。 必须是有效的 URI。 |
备注
可以将 ClickOnce 应用程序配置为在启动时扫描更新、在启动后扫描更新或从不检查更新。 若要在启动时扫描更新,请确保 update
元素下存在 beforeApplicationStartup
元素。 若要在启动后扫描更新,请确保 update
元素下存在 expiration
元素,并确保提供更新间隔。
若要禁用更新检查,请删除 subscription
元素。 如果在部署清单中指定从不扫描更新,你仍可使用 CheckForUpdate 方法手动检查更新。
注意
.NET Core 和 .NET 5 及更高版本中不支持 System.Deployment.Application 命名空间中的 ApplicationDeployment 类和 API。 在 .NET 7 中,支持访问应用程序部署属性的新方法。 有关详细信息,请参阅访问 .NET 中的 ClickOnce 部署属性。 .NET 7 不支持 ApplicationDeployment 方法的等效项。
有关 deploymentProvider 与更新的关系的详细信息,请参阅选择 ClickOnce 更新策略。
示例
下面的代码示例演示了 ClickOnce 部署清单中的 deployment
元素。 该示例使用 deploymentProvider
元素来指示首选的更新位置。
<deployment install="true" minimumRequiredVersion="2.0.0.0" mapFileExtension="true" trustUrlParameters="true">
<subscription>
<update>
<expiration maximumAge="6" unit="hours" />
</update>
</subscription>
<deploymentProvider codebase="http://www.adatum.com/MyApplication.application" />
</deployment>