共用方式為


<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 [開始] 功能表定義存在,以及在 [控制台] 的 [新增或移除程式] 應用程式中是否存在。 有效值為 truefalse。 如果為 false,ClickOnce 一律會從網路執行此應用程式的最新版本,而且無法辨識 subscription 元素。
minimumRequiredVersion 選擇性。 指定可在用戶端上執行的此應用程式的最低版本。 如果應用程式的版本號碼小於部署資訊清單中提供的版本號碼,則應用程式不會執行。 版本號碼必須以格式 N.N.N.N 指定,其中 N 是不帶正負號的整數。 如果 install 屬性為 false,則 minimumRequiredVersion 不得設定。
mapFileExtensions 選擇性。 預設為 false。 如果為 true,則部署中的所有檔案都必須具有 .deploy 副檔名。 ClickOnce 從網頁伺服器下載這些檔案之後,會立即從這些檔案中去除該副檔名。 如果您使用 Visual Studio 發佈應用程式,它會自動將此副檔名新增至所有檔案。 此參數允許從網頁伺服器下載 ClickOnce 部署中的所有檔案,該伺服器封鎖傳輸 .exe 等以「不安全」副檔名結尾的檔案。
disallowUrlActivation 選擇性。 預設為 false。 如果 true為 ,表示無法按下 URL 或輸入 URL 到瀏覽器中,來啟動已安裝的應用程式。 如果 install 屬性不存在,則會忽略此屬性。
trustURLParameters 選擇性。 預設為 false。 如果為 true,則允許 URL 包含傳入應用程式的查詢字串參數,就像將命令列引數傳遞至命令列應用程式一樣。 如需詳細資訊,請參閱 How to: Retrieve query string information in an online ClickOnce application (如何:在線上 ClickOnce 應用程式中擷取查詢字串資訊)

如果 disallowUrlActivation 屬性為 truetrustUrlParameters 必須從資訊清單中排除,或明確設定為 false

deployment 元素也包含下列子項目。

訂用帳戶

選擇性。 包含 update 元素。 subscription 項目沒有任何屬性。 如果 subscription 元素不存在,則 ClickOnce 應用程式永遠不會掃描更新。 如果 deployment 元素的 install 屬性是 false,則會忽略 subscription 元素,因為從網路啟動的 ClickOnce 應用程式一律會使用最新版本。

update

必要。 這個元素是 subscription 元素的子項目,並包含 beforeApplicationStartupexpiration 元素。 beforeApplicationStartupexpiration 不能同時在相同的部署資訊清單中指定。

update 項目沒有任何屬性。

beforeApplicationStartup

選擇性。 此元素是 update 元素的子項目,沒有屬性。 當 beforeApplicationStartup 元素存在時,如果用戶端在線,則 ClickOnce 檢查更新時會封鎖應用程式。 如果此元素不存在,ClickOnce 會先根據為 expiration 元素指定的值掃描更新。 beforeApplicationStartupexpiration 不能同時在相同的部署資訊清單中指定。

到期

選擇性。 此元素是 update 元素的子項目,而且沒有子系。 beforeApplicationStartupexpiration 不能同時在相同的部署資訊清單中指定。 當進行更新檢查並偵測到更新版本時,新版本會在現有版本執行時快取。 然後,在下次啟動 ClickOnce 應用程式時安裝新版本。

expiration 元素支援下列屬性。

屬性 描述
maximumAge 必要。 識別應用程式在執行更新檢查之前,目前的更新應變得多舊。 時間單位是由 unit 屬性所決定。
unit 必要。 識別 maximumAge 的時間單位。 有效單位為 hoursdaysweeks

deploymentProvider

對於 .NET Framework 2.0,如果部署資訊清單包含 subscription 區段,則需要此元素。 針對 .NET Framework 3.5 和更新版本,此元素是選擇性的,並且預設為探索部署資訊清單的伺服器和檔案路徑。

這個元素是 deployment 元素的子項,並具有下列屬性。

屬性 描述
codebase 必要。 識別用來更新 ClickOnce 應用程式之部署資訊清單的統一資源識別項 (URI) 位置。 這個元素也允許轉送 CD 型安裝的更新位置。 必須是有效的 URI。

備註

您可以將 ClickOnce 應用程式設定為在啟動時掃描更新、在啟動後掃描更新,或永遠不檢查更新。 若要在啟動時掃描更新,請確定 beforeApplicationStartup 元素存在於 update 元素底下。 若要在啟動之後掃描更新,請確定 expiration 元素存在於 update 元素底下,並提供更新間隔。

若要停用檢查更新,請移除 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>

另請參閱