<dependency> 元素 (ClickOnce 部署)

識別要安裝的應用程式版本,以及應用程式資訊清單的位置。

語法


      <dependency>
   <dependentAssembly
      preRequisite
      visible
      dependencyType
      codeBase
      size
   >
      <assemblyIdentity
         name
         version
         publicKeyToken
         processorArchitecture
         language
         type
      />
      <hash>
         <dsig:Transforms>
            <dsig:Transform
                Algorithm
            />
         </dsig:Transforms>
         <dsig:DigestMethod />
         <dsig:DigestValue>
         </dsig:DigestValue>
      </hash>

   </dependentAssembly>
</dependency>

元素和屬性

dependency 元素為必要項。 其沒有任何屬性。 部署資訊清單可以有多個 dependency 元素。

dependency 元素通常會表示 ClickOnce 應用程式內所包含組件上主要應用程式的相依性。 如果您的 Main.exe 應用程式取用名為 DotNetAssembly.dll 的組件,則該組件必須列在相依性區段中。 不過,Dependency 也可以表示其他類型的相依性,例如,特定 Common Language Runtime 版本的相依性、全域組件快取 (GAC) 中的組件或 COM 物件上的相依性。 由於這是無接觸部署技術,ClickOnce 無法起始這些相依性類型的下載和安裝,但如果一或多個指定的相依性不存在,它確實會讓應用程式無法執行。

dependentAssembly

必要。 此元素包含 assemblyIdentity 元素。 下表顯示 dependentAssembly 支援的屬性。

屬性 描述
preRequisite 選擇性。 指定此組件應該已存在於 GAC 中。 有效值為 truefalse。 如果 true,且指定的組件不存在於 GAC 中,則應用程式無法執行。
visible 選擇性。 識別最上層應用程式身分識別,包括其相依性。 ClickOnce 在內部使用以管理應用程式儲存體和啟用。
dependencyType 必要。 此相依性與應用程式之間的關聯性。 有效值為:

- install. 元件代表與目前應用程式不同的安裝。
- preRequisite. 目前的應用程式需要元件。
codebase 選擇性。 應用程式資訊清單的完整路徑。
size 選擇性。 應用程式資訊清單的大小,以位元組為單位。

assemblyIdentity

必要。 這個元素是 dependentAssembly 元素的子項。 assemblyIdentity 的內容必須與 ClickOnce 應用程式資訊清單中所述的內容相同。 下表顯示 assemblyIdentity 元素的屬性。

屬性 描述
Name 必要。 識別應用程式的名稱。
Version 必要。 依以下格式指定應用程式的版本號碼:major.minor.build.revision
publicKeyToken 必要。 指定 16 個字元的十六進位字串,其表示用於對應用程式或組件進行簽署之公開金鑰的 SHA-1 雜湊的最後 8 個位元組。 用於簽署的公開金鑰必須等於或大於 2048 位元。
processorArchitecture 必要。 指定微處理器。 對於 32 位元 Windows,有效值為 x86,對於 64 位元 Windows,則為 IA64
Language 選擇性。 識別組件的兩部分語言代碼,如 EN-US。 例如,EN-US 代表英文 (美國)。 預設值為 neutral。 此元素位於 asmv2 命名空間。
type 選擇性。 適用於與 Windows 並存安裝技術的回溯相容性。 唯一允許的值為 win32

雜湊

hash 元素是 file 元素的選用子系。 hash 項目沒有任何屬性。

ClickOnce 會使用應用程式中所有檔案的演算法雜湊作為安全性檢查,以確保部署後沒有任何檔案變更。 如果未包含 hash 元素,將不會執行此檢查。 因此,不建議省略 hash 元素。

dsig:Transforms

dsig:Transforms 元素是 hash 元素的必要子系。 dsig:Transforms 項目沒有任何屬性。

dsig:Transform

dsig:Transform 元素是 dsig:Transforms 元素的必要子系。 下表顯示 dsig:Transform 元素的屬性。

屬性 描述
Algorithm 用來計算此檔案摘要的演算法。 目前 ClickOnce 使用的唯一值是 urn:schemas-microsoft-com:HashTransforms.Identity

dsig:DigestMethod

dsig:DigestMethod 元素是 hash 元素的必要子系。 下表顯示 dsig:DigestMethod 元素的屬性。

屬性 描述
Algorithm 用來計算此檔案摘要的演算法。 目前 ClickOnce 使用的唯一值是 http://www.w3.org/2000/09/xmldsig#sha1

dsig:DigestValue

dsig:DigestValue 元素是 hash 元素的必要子系。 dsig:DigestValue 項目沒有任何屬性。 其文字值是指定檔案的計算雜湊。

備註

部署資訊清單通常具有單一 assemblyIdentity 元素,可識別應用程式資訊清單的名稱和版本。

範例 1

下列程式碼範例說明 ClickOnce 部署資訊清單中的 dependency 元素。

<!-- Identify the assembly dependencies -->
<dependency>
  <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MyApplication.exe" size="16384">
    <assemblyIdentity name="MyApplication" version="0.0.0.0" cultural="neutral" processorArchitecture="msil" />
    <hash>
      <dsig:Transforms>
        <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
      </dsig:Transforms>
      <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
       <dsig:DigestValue>YzXYZJAvj9pgAG3y8jXUjC7AtHg=</dsig:DigestValue>
    </hash>
  </dependentAssembly>
</dependency>

範例 2

下列程式碼範例會指定 GAC 中已安裝組件的相依性。

<dependency>
  <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
    <assemblyIdentity name="GACAssembly" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
  </dependentAssembly>
</dependency>

範例 3

下列程式碼範例會指定 Common Language Runtime 特定版本的相依性。

<dependency>
  <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
    <assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="2.0.50215.0" />
  </dependentAssembly>
</dependency>

範例 4

下列程式碼範例會指定作業系統相依性。

<dependency>
   <dependentOS supportUrl="http://www.microsoft.com" description="Microsoft Windows Operating System">
      <osVersionInfo>
         <os majorVersion="4" minorVersion="10" />
      </osVersionInfo>
   </dependentOS>
</dependency>

另請參閱