指定 ClickOnce 发布属性

可以在项目设计器“发布”页上或使用发布向导配置 ClickOnce 发布属性。 本文介绍如何指定发布位置、安装 URL、联机或脱机安装模式和发布版本等属性。

注释

在 ClickOnce for .NET Core 3.1 和 .NET 5 或更高版本中,可以使用发布工具而不是发布向导和项目设计器的“发布”页来设置部署属性。 有关更多信息,请参阅 使用 ClickOnce 部署 .NET Windows 应用程序.NET 的 ClickOnce

指定发布位置

使用 ClickOnce 发布应用程序时,该 Publish Location 属性指定放置应用程序文件和清单的位置。 可以是驱动器路径(C:\deploy\myapplication)、文件共享(\\server\myapplication)或 FTP 服务器(ftp://ftp.microsoft.com/myapplication)。 请注意,文本必须存在于 “发布位置 ”框中,才能使浏览(...)按钮正常工作。

可以在Publish Location“发布”页上或使用发布向导指定属性。 有关详细信息,请参阅 如何:使用发布向导发布 ClickOnce 应用程序

注释

使用 ClickOnce 安装应用程序的多个版本时,安装会将应用程序的早期版本移动到名为 Archive 的文件夹(位于指定的发布位置)。 以这种方式存档早期版本使安装目录远离早期版本的文件夹。

  1. 解决方案资源管理器中选择项目后,在 项目 菜单上,单击 属性

  2. 单击“ 发布 ”选项卡。

  3. “发布位置” 字段中,使用以下格式之一输入发布位置:

    • 若要发布到文件共享或磁盘路径,请使用 UNC 路径(\\Server\ApplicationName)或文件路径(C:\Deploy\ApplicationName)输入路径。

    • 若要发布到 FTP 服务器,请使用 ftp://ftp.microsoft.com/<ApplicationName> 格式输入路径。

      请注意,文本必须存在于 “发布位置” 框中,才能使“浏览”(...)按钮正常工作。

指定终端用户进行安装的位置

发布 ClickOnce 应用程序时,用户下载并安装应用程序的位置不一定是最初发布应用程序的位置。 例如,在某些组织中,开发人员可能会将应用程序发布到过渡服务器,然后管理员会将应用程序移动到 Web 服务器。

在这种情况下,可以使用 Installation URL 该属性来指定用户将下载应用程序的 Web 服务器。 这是必要的,以便应用程序清单知道在何处查找更新。

可以在Installation URL“发布”页上设置该属性。

注释

Installation URL也可以使用 PublishWizard 设置该属性。 有关详细信息,请参阅 “如何:使用发布向导发布 ClickOnce 应用程序”。

指定安装 URL

  1. 解决方案资源管理器中选择项目后,在 项目 菜单上,单击 属性

  2. 单击“ 发布 ”选项卡。

  3. 在“安装 URL”字段中,输入安装位置,可以使用格式为https://www.contoso.com/ApplicationName的完全限定 URL,也可以使用格式为\Server\ApplicationName的 UNC 路径。

指定 ClickOnce 脱机或联机安装模式

Install Mode 决定 ClickOnce 应用程序是否可以脱机或联机使用。 选择 “应用程序”仅联机可用时,用户必须有权访问 ClickOnce 发布位置(网页或文件共享),才能运行应用程序。 选择 “应用程序”也处于脱机状态时,应用程序还会向 “开始” 菜单和“ 添加或删除程序 ”对话框添加条目;用户能够在未连接时运行应用程序。

Install Mode可以在项目设计器“发布”页上设置。

注释

Install Mode也可以使用发布向导来进行设置。 有关详细信息,请参阅 “如何:使用发布向导发布 ClickOnce 应用程序”。

使 ClickOnce 应用程序仅联机可用

  1. 解决方案资源管理器中选择项目后,在 项目 菜单上,单击 属性

  2. 单击“ 发布 ”选项卡。

  3. “安装模式和设置” 区域中,单击 “应用程序仅联机” 选项按钮。

使 ClickOnce 应用程序联机或脱机可用

  1. 解决方案资源管理器中选择项目后,在 项目 菜单上,单击 属性

  2. 单击“ 发布 ”选项卡。

  3. “安装模式和设置” 区域中,单击 “应用程序也可脱机使用”选项按钮

    安装后,应用程序会将条目添加到 “开始” 菜单,并在控制面板中 添加或删除程序

设置 ClickOnce 发布版本

ClickOnce Publish Version 属性确定是否将发布的应用程序视为更新。 每当版本号递增时,应用程序将作为更新发布。

可以在Publish Version“发布”页上设置该属性。

更改版本号后,应用程序将发布为更新。 发布版本(主要版本、次要版本、修订版)的每个部分都可以具有最大值 65535 (MaxValue),允许的最大Version值。

使用 ClickOnce 安装应用程序的多个版本时,安装会将应用程序的早期版本移动到名为 Archive 的文件夹(位于指定的发布位置)。 以这种方式存档早期版本使安装目录远离早期版本的文件夹。

注释

项目选项会在每次发布应用程序时自动递增 Publish Version 属性;此选项默认启用。 请参阅“ClickOnce 发布版本的自动递增”以了解更多信息。

更改发布版本

  1. 解决方案资源管理器中选择项目后,在 “项目 ”菜单上单击“ 属性”。

  2. 单击“ 发布 ”选项卡。

  3. “发布版本 ”字段中,递增 “主要”、“ 次要”、“ 生成”或 “修订 ”版本号。

    注释

    不应递减版本号;这样做可能会导致不可预知的更新行为。

自动递增 ClickOnce 发布版本

发布 ClickOnce 应用程序时,更改 Publish Version 属性会导致应用程序发布为更新。 默认情况下,Visual Studio 会在每次发布应用程序时自动递增 Revision 数量 Publish Version

可以在项目设计器“发布”页上禁用此行为。

注释

你看到的对话框和菜单命令可能与“帮助”中所述的命令不同,具体取决于你的活动设置或版本。 若要更改设置,请选择“工具”菜单上的“导入和导出设置”。 有关详细信息,请参阅 重置设置

禁用自动递增发布版本号

  1. 解决方案资源管理器中选择项目后,在 项目 菜单上,单击 属性

  2. 单击“ 发布 ”选项卡。

  3. “发布版本 ”部分中,清除 “每次发布时自动递增修订 ”复选框。

为 ClickOnce 应用程序指定发布页面

发布 ClickOnce 应用程序时,将生成并发布默认网页(publish.htm)。 此页面包含应用程序的名称、用于安装应用程序和/或任何先决条件的链接,以及描述 ClickOnce 的帮助主题的链接。 项目 “发布页面” 属性允许你为 ClickOnce 应用程序指定网页的名称。

在发布页面被指定之后,下次您发布时,它将被复制到发布位置,且如果再次发布,它将不会被覆盖。 如果想要自定义页面的外观,可以这样做,而无需担心丢失更改。 有关详细信息,请参阅 自定义 ClickOnce 默认网页

可以在“发布选项”对话框中设置“发布页面”属性,可从项目设计器的“发布”窗格访问。

若要为 ClickOnce 应用程序指定自定义网页,请执行以下作:

  1. 解决方案资源管理器中选择项目后,在 “项目 ”菜单上单击“ 属性”。

  2. 选择“ 发布 ”窗格。

  3. 单击 “选项 ”按钮打开“ 发布选项 ”对话框。

  4. 单击“ 部署”。

  5. 在“ 发布选项 ”对话框中,确保选中 “发布后打开部署网页 ”复选框(默认应选中)。

  6. “部署”网页 框中,输入网页的名称,然后单击“ 确定”。

若要防止每次发布时启动发布页面,请执行以下步骤:

  1. 解决方案资源管理器中选择项目后,在 “项目 ”菜单上单击“ 属性”。

  2. 选择“ 发布 ”窗格。

  3. 单击 “选项 ”按钮打开“ 发布选项 ”对话框。

  4. 单击“ 部署”。

  5. “发布选项 ”对话框中,清除 “发布后打开部署网页 ”复选框。

自定义 ClickOnce 应用程序的默认网页

将 ClickOnce 应用程序发布到 Web 时,将自动生成网页并随应用程序一起发布。 默认页面包含应用程序的名称和用于在 MSDN 上安装应用程序、安装先决条件或访问帮助的链接。

注释

页面上看到的实际链接取决于用于查看页面的计算机,以及您所包括的先决条件。

网页的默认名称 为Publish.htm;可以在 项目设计器中更改名称。 有关详细信息,请参阅 指定 ClickOnce 应用程序的发布页面

Publish.htm 网页仅在检测到较新版本时才发布。

注释

发布 设置所做的更改不会影响 Publish.htm 页面,但有一个例外:如果在最初发布后添加或删除先决条件,则先决条件列表将不再准确。 需要编辑先决条件链接的文本以反映更改。

自定义发布网页页面:

  1. 将 ClickOnce 应用程序发布到 Web 位置。 有关详细信息,请参阅 “如何:使用发布向导发布 ClickOnce 应用程序”。

  2. 在 Web 服务器上,在 Visual Web Designer 或其他 HTML 编辑器中打开 Publish.htm 文件。

  3. 根据需要自定义页面并保存。

  4. 可选。 若要防止 Visual Studio 覆盖自定义的发布网页,请在“发布选项”对话框中每次发布后取消选中“自动生成部署网页”。

发布 ClickOnce 应用程序时, 支持 URL 属性标识一个网页或文件共享,用户可在其中获取有关应用程序的信息。 此属性是可选的;如果提供,URL 将显示在应用程序的条目 “添加或删除程序 ”对话框中。

可以在项目设计器“发布”页上设置支持 URL 属性。

指定支持 URL:

  1. 解决方案资源管理器中选择项目后,在 项目 菜单上,单击 属性

  2. 单击“ 发布 ”选项卡。

  3. 单击 “选项 ”按钮打开“ 发布选项 ”对话框。

  4. 单击 “说明”。

  5. “支持 URL ”字段中,输入网站、网页或 UNC 共享的完全限定路径。

为 ClickOnce 部署中的单个先决条件指定支持 URL

ClickOnce 部署可以测试客户端计算机上必须具备的一些先决条件,以便 ClickOnce 应用程序运行。 这些依赖项包括所需的 .NET Framework 最低版本、作系统的版本以及必须在全局程序集缓存(GAC)中预安装的任何程序集。 但是,ClickOnce 无法安装这些必备组件本身;如果未找到必备组件,它只会停止安装,并显示一个对话框,说明安装失败的原因。

有两种方法可用于安装必备组件。 可以使用引导程序应用程序安装它们。 或者,可以为各个先决条件指定支持 URL,如果找不到先决条件,则会在对话框中向用户显示该 URL。 该 URL 引用的页面可以包含指向安装所需必备组件的说明的链接。 如果应用程序未为单个先决条件指定支持 URL,则 ClickOnce 会显示应用程序作为整体的部署清单中指定的支持 URL,如果该 URL 已定义。

尽管 Visual Studio、 Mage.exeMageUI.exe 都可用于生成 ClickOnce 部署,但这些工具都不支持为各个先决条件指定支持 URL。 本文档介绍如何修改部署的应用程序清单和部署清单以包含这些支持 URL。

注释

在 ClickOnce for .NET Core 3.1 和 .NET 5 或更高版本中,可以使用发布工具而不是发布向导和项目设计器的“发布”页来设置部署属性。 有关更多信息,请参阅 使用 ClickOnce 部署 .NET Windows 应用程序.NET 的 ClickOnce

为单个先决条件指定支持 URL

  1. 在文本编辑器中打开 ClickOnce 应用程序的应用程序清单( .manifest 文件)。

  2. 对于操作系统先决条件,请将 supportUrl 属性添加到 dependentOS 元素:

     <dependency>
        <dependentOS supportUrl="http://www.adatum.com/MyApplication/wrongOSFound.htm">
          <osVersionInfo>
            <os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" servicePackMinor="0" />
          </osVersionInfo>
        </dependentOS>
      </dependency>
    
  3. 对于特定版本的公共语言运行时的先决条件,请将 supportUrl 属性添加到 dependentAssembly 指定公共语言运行时依赖项的条目:

      <dependency>
        <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true" supportUrl=" http://www.adatum.com/MyApplication/wrongClrVersionFound.htm">
          <assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="4.0.30319.0" />
        </dependentAssembly>
      </dependency>
    
  4. 对于必须在全局程序集缓存中预安装的程序集的先决条件,请为指定所需程序集的supportUrl元素设置dependentAssembly

      <dependency>
        <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true" supportUrl=" http://www.adatum.com/MyApplication/missingSampleGACAssembly.htm">
          <assemblyIdentity name="SampleGACAssembly" version="5.0.0.0" publicKeyToken="04529dfb5da245c5" processorArchitecture="msil" language="neutral" />
        </dependentAssembly>
      </dependency>
    
  5. 可选。 对于面向 .NET Framework 4 的应用程序,请在文本编辑器中打开 ClickOnce 应用程序的部署清单( .application 文件)。

  6. 对于 .NET Framework 4 先决条件,请将 supportUrl 属性添加到 compatibleFrameworks 元素:

    <compatibleFrameworks  xmlns="urn:schemas-microsoft-com:clickonce.v2" supportUrl="http://adatum.com/MyApplication/CompatibleFrameworks.htm">
      <framework targetVersion="4.0" profile="Client" supportedRuntime="4.0.30319" />
      <framework targetVersion="4.0" profile="Full" supportedRuntime="4.0.30319" />
    </compatibleFrameworks>
    
  7. 手动更改应用程序清单后,必须使用数字证书重新对应用程序清单进行签名,然后更新并重新对部署清单重新签名。 使用 Mage.exeMageUI.exe SDK 工具完成此任务,因为使用 Visual Studio 重新生成这些文件会清除手动更改。 有关使用 Mage.exe 重新对清单进行签名的详细信息,请参阅 如何:重新对应用程序和部署清单进行签名

.NET Framework 安全性

如果应用程序标记为在部分信任中运行,则对话框上不会显示支持 URL。

注释

在 ClickOnce for .NET Core 和 .NET 5 或更高版本中,不支持需要代码访问安全性的部分信任。 在 .NET Framework 中,使用代码访问安全性不是最佳做法,不建议这样做。

更改 ClickOnce 应用程序的发布语言

发布 ClickOnce 应用程序时,安装过程中显示的用户界面默认为开发计算机的语言和文化。 如果要发布本地化的应用程序,则需要指定语言和区域性以匹配本地化版本。 这由项目的 Publish language 属性确定。

可以在“Publish language”对话框中设置该属性,可从项目设计器“发布”页访问。

注释

你看到的对话框和菜单命令可能与“帮助”中所述的命令不同,具体取决于你的活动设置或版本。 若要更改设置,请选择“工具”菜单上的“导入和导出设置”。 有关详细信息,请参阅 重置设置

更改发布语言:

  1. 解决方案资源管理器中选择项目后,在 项目 菜单上,单击 属性

  2. 单击“ 发布 ”选项卡。

    注释

    在 ClickOnce for .NET Core 3.1 和 .NET 5 或更高版本中,可以使用发布工具而不是发布向导和项目设计器的“发布”页来设置部署属性。 有关更多信息,请参阅 使用 ClickOnce 部署 .NET Windows 应用程序.NET 的 ClickOnce

  3. 单击 “选项 ”按钮打开“ 发布选项 ”对话框。

  4. 单击 “说明”。

  5. “发布选项 ”对话框中,从 “发布语言 ”下拉列表中选择语言和区域性,然后单击“ 确定”。

指定 ClickOnce 应用程序的“开始”菜单名称

安装 ClickOnce 应用程序以供联机和脱机使用时,条目将添加到 “开始” 菜单和 “添加或删除程序 ”列表。 默认情况下,显示名称与应用程序程序集的名称相同,但可以通过在“发布选项”对话框中设置产品名称来更改显示名称

产品名称 将显示在 publish.htm 页上;对于已安装的脱机应用程序,它将是 “开始” 菜单中的条目的名称,也是 “添加或删除程序”中显示的名称。

发布者名称将显示在产品名称上方的publish.htm 页上,对于已安装的脱机应用程序,它也将是包含“开始”菜单中应用程序图标的文件夹的名称。

%appdata%\Microsoft\Windows\Start Menu\Programs\<publisher 名称>中创建“开始”菜单快捷方式或应用引用。 快捷方式或应用引用的名称与产品名称相同。

可以在项目设计器“发布”页上的“发布选项”对话框中设置产品名称发布者名称属性。

指定“开始”菜单名称:

  1. 解决方案资源管理器中选择项目后,在 项目 菜单上,单击 属性

  2. 单击“ 发布 ”选项卡。

  3. 单击 “选项 ”按钮打开“ 发布选项 ”对话框。

  4. 单击 “说明”。

  5. 在“ 发布选项 ”对话框中,输入在 产品名称中显示的名称。

  6. (可选)可以在 发布服务器名称中输入发布者名称

为 CD 安装启用自动启动

通过可移动媒体(如 CD-ROM 或 DVD-ROM)部署 ClickOnce 应用程序时,可以启用 AutoStart ,以便在插入媒体时自动启动 ClickOnce 应用程序。

AutoStart可以在项目设计器“发布”页上启用。

启用 AutoStart:

  1. 解决方案资源管理器中选择项目后,在 “项目 ”菜单上单击“ 属性”。

  2. 单击“ 发布 ”选项卡。

  3. 单击“选项” 按钮。

    此时会显示“ 发布选项 ”对话框。

  4. 单击“ 部署”。

  5. 选中“ 对于 CD 安装”,在插入 CD 时自动启动安装程序 复选框。

    发布应用程序时, Autorun.inf 文件将复制到发布位置。