Aracılığıyla paylaş


-link (Visual Basic)

Derleyicinin, şu anda derlediğiniz projede belirtilen derlemelerdeki COM tür bilgilerini kullanılabilir hale getirmesine neden olur.

Sözdizimi

-link:fileList  

veya

-l:fileList  

Bağımsız değişkenler

Süre Tanım
fileList Gerekli. Derleme dosya adlarının virgülle ayrılmış listesi. Dosya adında boşluk varsa, adı tırnak içine alın.

Açıklamalar

seçeneği, -link ekli tür bilgilerine sahip bir uygulama dağıtmanıza olanak tanır. Uygulama daha sonra, çalışma zamanı derlemesine başvuru gerektirmeden katıştırılmış tür bilgilerini uygulayan bir çalışma zamanı derlemesindeki türleri kullanabilir. Çalışma zamanı derlemesinin çeşitli sürümleri yayımlanırsa, katıştırılmış tür bilgilerini içeren uygulama, yeniden derlenmek zorunda kalmadan çeşitli sürümlerle çalışabilir. Örnek için bkz . İzlenecek Yol: Yönetilen Derlemelerden Türleri Ekleme.

bu seçeneğin -link kullanılması özellikle COM birlikte çalışmasıyla çalışırken kullanışlıdır. Uygulamanızın artık hedef bilgisayarda birincil birlikte çalışma derlemesi (PIA) gerektirmemesi için COM türlerini ekleyebilirsiniz. -link seçeneği, derleyiciye başvuruda bulunılan birlikte çalışma derlemesindeki COM türü bilgilerini sonuçta elde edilen derlenmiş koda eklemesini sağlar. COM türü CLSID (GUID) değeriyle tanımlanır. Sonuç olarak, uygulamanız aynı CLSID değerlerine sahip aynı COM türlerini yüklemiş bir hedef bilgisayarda çalıştırılabilir. Microsoft Office'i otomatik hale getiren uygulamalar iyi bir örnek olabilir. Office gibi uygulamalar genellikle farklı sürümlerde aynı CLSID değerini tuttuğundan, uygulamanız hedef bilgisayarda .NET Framework 4 veya üzeri yüklü olduğu ve uygulamanız başvurulan COM türlerine dahil edilen yöntemleri, özellikleri veya olayları kullandığı sürece başvurulan COM türlerini kullanabilir.

-link seçeneği yalnızca arabirimleri, yapıları ve temsilcileri ekler. COM sınıflarının katıştırılması desteklenmez.

Not

Kodunuzda eklenmiş bir COM türünün örneğini oluşturduğunuzda, uygun arabirimi kullanarak örneği oluşturmanız gerekir. CoClass kullanarak katıştırılmış com türünün bir örneğini oluşturmaya çalışmak bir hataya neden olur.

Visual Studio'da seçeneği ayarlamak -link için bir derleme başvurusu ekleyin ve özelliğini true olarak ayarlayınEmbed Interop Types. özelliği için Embed Interop Types varsayılan değer false'tur.

Başka bir COM derlemesine (Derleme B) başvuran bir COM derlemesine (Derleme A) bağlanırsanız, aşağıdakilerden biri doğruysa B Derlemesine de bağlanmanız gerekir:

  • Derleme A'dan bir tür, bir türden devralır veya B Derlemesinden bir arabirim uygular.

  • B Derlemesinden dönüş türüne veya parametre türüne sahip bir alan, özellik, olay veya yöntem çağrılır.

Derleme başvurularınızdan birinin veya daha fazlasının bulunduğu dizini belirtmek için -libpath kullanın.

-reference derleyici seçeneği gibi, -link derleyici seçeneği de sık kullanılan .NET Framework derlemelerine başvuran Vbc.rsp yanıt dosyasını kullanır. Derleyicinin Vbc.rsp dosyasını kullanmasını istemiyorsanız -noconfig derleyicisi seçeneğini kullanın.

kısa biçimi -link şeklindedir -l.

Genel Türler ve Katıştırılmış Türler

Aşağıdaki bölümlerde, birlikte çalışma türlerini ekleyen uygulamalarda genel türleri kullanma sınırlamaları açıklanmaktadır.

Genel Arabirimler

Birlikte çalışma derlemesinden katıştırılmış genel arabirimler kullanılamaz. Bu, aşağıdaki örnekte gösterilir.

' The following code causes an error if ISampleInterface is an embedded interop type.
Dim sample As ISampleInterface(Of SampleType)

Genel Parametreleri Olan Türler

Türü birlikte çalışma derlemesinden eklenmiş olan genel parametreye sahip türler, bu tür bir dış derlemeden geliyorsa kullanılamaz. Bu kısıtlama arabirimler için geçerli değildir. Örneğin, derlemede RangeMicrosoft.Office.Interop.Excel tanımlanan arabirimi göz önünde bulundurun. Kitaplık birlikte çalışma türlerini derlemeden Microsoft.Office.Interop.Excel eklerse ve türü arabirim olan bir parametresi Range olan genel bir tür döndüren bir yöntemi kullanıma sunarsa, bu yöntemin aşağıdaki kod örneğinde gösterildiği gibi genel bir arabirim döndürmesi gerekir.

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

Aşağıdaki örnekte istemci kodu, genel arabirimi hatasız döndüren IList yöntemini çağırabilir.

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

Örnek

Aşağıdaki komut satırı, ve kaynak dosyasını OfficeApp.vb ve başvuru derlemelerini COMData1.dllCOMData2.dll derleyip oluşturur OfficeApp.exe.

vbc -link:COMData1.dll,COMData2.dll -out:OfficeApp.exe OfficeApp.vb  

Ayrıca bkz.