Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menyebabkan pengkompilasi membuat informasi jenis COM dalam rakitan yang ditentukan tersedia untuk proyek yang saat ini Anda kompilasi.
Sintaksis
-link:fileList
atau
-l:fileList
Argumen
| Istilah | Definisi |
|---|---|
fileList |
Dibutuhkan. Daftar nama file rakitan yang dibatasi koma. Jika nama file berisi spasi, sertakan nama dalam tanda kutip. |
Komentar
Opsi ini -link memungkinkan Anda untuk menyebarkan aplikasi yang memiliki informasi jenis yang disematkan. Aplikasi kemudian dapat menggunakan jenis dalam rakitan runtime yang mengimplementasikan informasi jenis yang disematkan tanpa memerlukan referensi ke perakitan runtime. Jika berbagai versi rakitan runtime diterbitkan, aplikasi yang berisi informasi jenis yang disematkan dapat bekerja dengan berbagai versi tanpa harus dikompresi ulang. Misalnya, lihat Panduan: Menyematkan Jenis dari Rakitan Terkelola.
-link Menggunakan opsi ini sangat berguna ketika Anda bekerja dengan interop COM. Anda dapat menyematkan jenis COM sehingga aplikasi Anda tidak lagi memerlukan perakitan interop utama (PIA) pada komputer target. Opsi -link menginstruksikan pengkompilasi untuk menyematkan informasi jenis COM dari perakitan interop yang direferensikan ke dalam kode yang dikompilasi yang dihasilkan. Jenis COM diidentifikasi oleh nilai CLSID (GUID). Akibatnya, aplikasi Anda dapat berjalan pada komputer target yang telah menginstal jenis COM yang sama dengan nilai CLSID yang sama. Aplikasi yang mengotomatiskan Microsoft Office adalah contoh yang baik. Karena aplikasi seperti Office biasanya menyimpan nilai CLSID yang sama di berbagai versi, aplikasi Anda dapat menggunakan jenis COM yang dirujuk selama .NET Framework 4 atau yang lebih baru diinstal pada komputer target dan aplikasi Anda menggunakan metode, properti, atau peristiwa yang disertakan dalam jenis COM yang dirujuk.
Opsi ini -link hanya menyematkan antarmuka, struktur, dan delegasi. Menyematkan kelas COM tidak didukung.
Nota
Saat Anda membuat instans jenis COM yang disematkan dalam kode, Anda harus membuat instans dengan menggunakan antarmuka yang sesuai. Mencoba membuat instans jenis COM yang disematkan dengan menggunakan CoClass menyebabkan kesalahan.
Untuk mengatur -link opsi di Visual Studio, tambahkan referensi perakitan dan atur Embed Interop Types properti ke true. Default untuk Embed Interop Types properti adalah false.
Jika Anda menautkan ke rakitan COM (Assembly A) yang sendiri mereferensikan rakitan COM lain (Assembly B), Anda juga harus menautkan ke Assembly B jika salah satu hal berikut ini benar:
Jenis dari Assembly A mewarisi dari jenis atau mengimplementasikan antarmuka dari Assembly B.
Bidang, properti, peristiwa, atau metode yang memiliki jenis pengembalian atau jenis parameter dari Assembly B dipanggil.
Gunakan -libpath untuk menentukan direktori tempat satu atau beberapa referensi perakitan Anda berada.
Seperti opsi - reference compiler, -link opsi compiler menggunakan file respons Vbc.rsp, yang mereferensikan rakitan .NET Framework yang sering digunakan. Gunakan opsi pengkompilasi -noconfig jika Anda tidak ingin pengkompilasi menggunakan file Vbc.rsp.
Bentuk pendeknya -link adalah -l.
Jenis Generik dan Tersemat
Bagian berikut menjelaskan batasan penggunaan jenis generik dalam aplikasi yang menyematkan jenis interop.
Antarmuka generik
Antarmuka generik yang disematkan dari rakitan interop tidak dapat digunakan. Ini ditunjukkan dalam contoh berikut.
' The following code causes an error if ISampleInterface is an embedded interop type.
Dim sample As ISampleInterface(Of SampleType)
Jenis yang Memiliki Parameter Generik
Jenis yang memiliki parameter generik yang jenisnya disematkan dari rakitan interop tidak dapat digunakan jika jenis tersebut berasal dari rakitan eksternal. Pembatasan ini tidak berlaku untuk antarmuka. Misalnya, pertimbangkan Range antarmuka yang didefinisikan dalam Microsoft.Office.Interop.Excel rakitan. Jika pustaka menyematkan jenis interop dari Microsoft.Office.Interop.Excel rakitan dan mengekspos metode yang mengembalikan jenis generik yang memiliki parameter yang jenisnya adalah antarmuka, metode tersebut Range harus mengembalikan antarmuka generik, seperti yang ditunjukkan dalam contoh kode berikut.
Imports System.Collections.Generic
Imports Microsoft.Office.Interop.Excel
Class Utility
' The following code causes an error when called by a client assembly.
Public Function GetRange1() As List(Of Range)
End Function
' The following code is valid for calls from a client assembly.
Public Function GetRange2() As IList(Of Range)
End Function
End Class
Dalam contoh berikut, kode klien dapat memanggil metode yang mengembalikan IList antarmuka generik tanpa kesalahan.
Module Client
Public Sub Main()
Dim util As New Utility()
' The following code causes an error.
Dim rangeList1 As List(Of Range) = util.GetRange1()
' The following code is valid.
Dim rangeList2 As List(Of Range) = CType(util.GetRange2(), List(Of Range))
End Sub
End Module
Contoh
Baris perintah berikut mengkompilasi file OfficeApp.vb sumber dan rakitan referensi dari COMData1.dll dan COMData2.dll untuk menghasilkan OfficeApp.exe.
vbc -link:COMData1.dll,COMData2.dll -out:OfficeApp.exe OfficeApp.vb