Elemen <dependecy> (penyebaran ClickOnce)
Mengidentifikasi versi aplikasi yang akan diinstal dan lokasi manifes aplikasi.
Sintaks
<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>
Elemen dan atribut
dependency
Elemen diperlukan. Elemen ini tidak memiliki atribut. Manifes penyebaran dapat memiliki beberapa elemen dependency
.
Elemen dependency
biasanya menyatakan dependensi untuk aplikasi utama pada rakitan yang terdapat dalam aplikasi ClickOnce. Jika aplikasi Main.exe Anda menggunakan rakitan dengan nama DotNetAssembly.dll, maka rakitan tersebut harus dicantumkan di bagian dependensi. Namun, dependensi juga dapat menyatakan jenis dependensi lain, seperti dependensi di versi tertentu dari runtime bahasa umum pada perakitan di singgahan perakitan global (GAC), atau pada objek COM. Karena ini adalah teknologi penyebaran tanpa sentuhan, ClickOnce tidak dapat memulai pengunduhan dan penginstalan jenis dependensi ini, tetapi itu akan mencegah aplikasi berjalan jika satu atau lebih dependensi yang ditentukan tidak ada.
dependenAssembly
Harus diisi. Elemen ini berisi elemen assemblyIdentity
. Tabel berikut menunjukkan atribut yang didukung dependentAssembly
.
Atribut | Deskripsi |
---|---|
preRequisite |
Opsional. Menentukan bahwa rakitan ini harus sudah ada di GAC. Nilai yang berlaku adalah true atau false . Jika true dan rakitan yang ditentukan tidak ada di GAC, aplikasi gagal dijalankan. |
visible |
Opsional. Mengidentifikasi identitas aplikasi tingkat atas, termasuk dependensinya. Digunakan secara internal oleh ClickOnce untuk mengelola penyimpanan dan aktivasi aplikasi. |
dependencyType |
Harus diisi. Hubungan antara dependensi ini dan aplikasi. Nilai yang valid adalah: - install . Komponen mewakili penginstalan terpisah dari aplikasi saat ini.- preRequisite . Komponen diperlukan oleh aplikasi saat ini. |
codebase |
Opsional. Jalur penuh ke manifes aplikasi. |
size |
Opsional. Ukuran manifes aplikasi, dalam byte. |
assemblyIdentity
Harus diisi. Elemen ini adalah turunan dari elemen dependentAssembly
. Konten assemblyIdentity
harus sama seperti yang dijelaskan dalam manifes aplikasi ClickOnce. Tabel berikut ini menjelaskan atribut elemen assemblyIdentity
.
Atribut | Deskripsi |
---|---|
Name |
Harus diisi. Mengidentifikasi nama aplikasi. |
Version |
Harus diisi. Menentukan nomor versi aplikasi dalam format berikut: major.minor.build.revision |
publicKeyToken |
Harus diisi. Menentukan string heksadesimal dengan 16 karakter yang mewakili 8 byte terakhir dari hash SHA-1 dari kunci publik tempat aplikasi atau perakitan ditandatangani. Kunci umum yang digunakan untuk menandatangani harus 2048 bit atau lebih. |
processorArchitecture |
Harus diisi. Menentukan mikroprosesor. Nilai yang valid adalah x86 untuk Windows 32-bit dan IA64 untuk Windows 64-bit. |
Language |
Opsional. Mengidentifikasi dua bagian kode bahasa dari rakitan. Misalnya, EN-US, yang merupakan singkatan dari Bahasa Inggris Amerika. Default adalah neutral . Elemen ini ada di namespace layanan asmv2 . |
type |
Opsional. Untuk kompatibilitas mundur dengan teknologi penginstalan berdampingan Windows. Satu-satunya nilai yang diizinkan adalah win32 . |
Hash
Elemen hash
adalah turunan opsional elemen file
. Elemen hash
tidak memiliki atribut.
ClickOnce menggunakan hash algoritmik dari semua file di aplikasi sebagai pemeriksaan keamanan untuk memastikan bahwa tidak ada file yang diubah setelah penyebaran. Jika elemen hash
tidak disertakan, pemeriksaan ini tidak akan dilakukan. Oleh karena itu, tidak disarankan untuk menghilangkan elemen hash
.
dsig:Transforms
Elemen dsig:Transforms
adalah turunan yang diperlukan elemen hash
. Elemen dsig:Transforms
tidak memiliki atribut.
dsig:Transform
Elemen dsig:Transform
adalah turunan yang diperlukan elemen dsig:Transforms
. Tabel berikut ini menjelaskan atribut elemen dsig:Transform
.
Atribut | Deskripsi |
---|---|
Algorithm |
Algoritma digunakan untuk menghitung hash untuk file ini. Satu-satunya nilai saat ini yang digunakan oleh ClickOnce adalah urn:schemas-microsoft-com:HashTransforms.Identity . |
dsig:DigestMethod
Elemen dsig:DigestMethod
adalah turunan yang diperlukan elemen hash
. Tabel berikut ini menjelaskan atribut elemen dsig:DigestMethod
.
Atribut | Deskripsi |
---|---|
Algorithm |
Algoritma digunakan untuk menghitung hash untuk file ini. Satu-satunya nilai saat ini yang digunakan oleh ClickOnce adalah http://www.w3.org/2000/09/xmldsig#sha1 . |
dsig:DigestValue
Elemen dsig:DigestValue
adalah turunan yang diperlukan elemen hash
. Elemen dsig:DigestValue
tidak memiliki atribut. Nilai teksnya adalah hash yang dihitung untuk file yang ditentukan.
Keterangan
Manifes penyebaran biasanya memiliki satu elemen assemblyIdentity
yang mengidentifikasi nama dan versi dari manifes aplikasi.
Contoh 1
Contoh kode berikut menunjukkan elemen dependency
dalam manifes penyebaran ClickOnce.
<!-- 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>
Contoh 2
Contoh kode berikut menentukan dependensi pada rakitan yang sudah diinstal di GAC.
<dependency>
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
<assemblyIdentity name="GACAssembly" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
</dependentAssembly>
</dependency>
Contoh 3
Contoh kode berikut menentukan dependensi pada versi tertentu dari runtime bahasa umum.
<dependency>
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
<assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="2.0.50215.0" />
</dependentAssembly>
</dependency>
Contoh 4
Contoh kode berikut menentukan dependensi sistem operasi.
<dependency>
<dependentOS supportUrl="http://www.microsoft.com" description="Microsoft Windows Operating System">
<osVersionInfo>
<os majorVersion="4" minorVersion="10" />
</osVersionInfo>
</dependentOS>
</dependency>