<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 中。 有效值為 true 和 false 。 如果 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>