語言

<部署> 元素(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 。 該元素具有以下屬性。

Attribute Description
install Required. 指定此應用程式是否在 Windows 開始選單及控制台新增或移除程式應用程式中定義存在狀態。 有效值為 true 和 false。 若 false,ClickOnce 將始終從網路執行最新版本的應用程式,且不會辨識該 subscription 元素。
minimumRequiredVersion Optional. 指定該應用程式可在用戶端執行的最小版本。 若應用程式的版本號小於部署清單中提供的版本號,該應用程式將無法執行。 版本號必須以格式 N.N.N.N指定,其中 N 是無符號整數。 若 install 屬性為 false, minimumRequiredVersion 則不得設定。
mapFileExtensions Optional. 預設為 false。 若 true,部署中的所有檔案必須有 .deploy 副檔名。 ClickOnce 會在從網頁伺服器下載這些檔案後,立即移除這個副檔名。 如果你用 Visual Studio 發佈應用程式,它會自動為所有檔案加上這個副檔名。 此參數允許從阻止以「不安全」副檔名結尾的檔案傳輸的網頁伺服器下載所有 ClickOnce 部署中的檔案,例如 .exe。
disallowUrlActivation Optional. 預設為 false。 如果 true,則無法透過點擊 URL 或在瀏覽器中輸入該 URL 來啟動已安裝的應用程式。 若 install 該屬性不存在,則忽略該屬性。
trustURLParameters Optional. 預設為 false。 如果 true,則允許 URL 包含傳入應用程式的查詢字串參數,就像命令列參數傳遞給命令列應用程式一樣。 欲了解更多資訊,請參閱 「如何:在線上 ClickOnce 應用程式中取得查詢字串資訊」。

若屬性 disallowUrlActivation 為 true, trustUrlParameters 則必須從清單中排除,或明確設為 false。

該 deployment 元素同時包含以下子元素。

月租方案

Optional. 包含元素 update 。 元素 subscription 沒有屬性。 若 subscription 該元素不存在,ClickOnce 應用程式將永遠無法掃描更新。 若installdeployment元素屬性為 false,subscription則該元素會被忽略,因為從網路啟動的 ClickOnce 應用程式總是使用最新版本。

更新

Required. 此元素是該 subscription 元素的子節點,且包含 或 beforeApplicationStartup 元素 expiration 。 beforeApplicationStartup 且 expiration 無法同時指定在同一張部署清單中。

元素 update 沒有屬性。

beforeApplicationStartup

Optional. 此元素是該元素的子 update 元素,且沒有屬性。 當該 beforeApplicationStartup 元素存在時,當 ClickOnce 檢查更新時,應用程式會被阻擋,且客戶端仍在線上。 若該元素不存在,ClickOnce 會先根據該 expiration 元素指定的值掃描更新。 beforeApplicationStartup 且 expiration 無法同時指定在同一張部署清單中。

到期日

Optional. 這個元素是元素 update 的子,沒有子孫。 beforeApplicationStartup 且 expiration 無法同時指定在同一張部署清單中。 當更新檢查發生且偵測到更新版本時,新版本會快取,而現有版本則繼續執行。 新版本會在 ClickOnce 應用程式的下一次啟動時安裝。

該 expiration 元素支援以下屬性。

Attribute Description
maximumAge Required. 用以識別目前更新應該有多舊,然後應用程式才會進行更新檢查。 時間單位由 unit 屬性決定。
unit Required. 識別時間單位。maximumAge 有效的單位有 hours、 days、 weeks和 。

部署提供者

對於 .NET Framework 2.0,若部署清單包含某subscription個區段,則此元素是必不可少的。 對於 .NET Framework 3.5 及以後版本,此元素為可選,預設會依據發現部署清單的伺服器與檔案路徑。

此元素是該 deployment 元素的子節點,具有以下屬性。

Attribute Description
codebase Required. 以統一資源識別碼(URI)識別部署清單的位置,用於更新 ClickOnce 應用程式。 此元素也允許為基於光碟的安裝轉發更新位置。 必須是有效的 URI。

備註

你可以設定 ClickOnce 應用程式在啟動時掃描更新、啟動後掃描更新,或是完全不檢查更新。 要在啟動時掃描更新,請確保該 beforeApplicationStartup 元素存在於該 update 元素之下。 啟動後要掃描更新,請確保該 expiration 元素存在於該 update 元素之下,並且提供更新間隔。

要停用更新檢查功能,請移除該 subscription 元素。 當你在部署清單中指定永遠不要掃描更新時,你仍然可以透過這個 CheckForUpdate 方法手動檢查更新。

注意

ApplicationDeployment命名空間中的System.Deployment.Application類別和 API 不支援 .NET Core 和 .NET 5 和更新版本。 在 .NET 7 中,支援存取應用程式部署屬性的新方法。 如需詳細資訊,請參閱 存取 .NET 中的 ClickOnce 部署屬性。 .NET 7 不支援對等的 ApplicationDeployment 方法。

欲了解更多關於 deploymentProvider 與更新的關聯,請參閱 「選擇 ClickOnce 更新策略」。

Examples

以下程式碼範例說明了 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>

參見