Udostępnij za pośrednictwem


/link (Visual Basic)

Powoduje, że kompilator udostępnia informacje o typie COM określonych zestawów do projektu, które są obecnie kompilacji.

/link:fileList
' -or-
/l:fileList

Argumenty

Termin

Definicja

fileList

Wymagane.Rozdzielany przecinkami listę nazw plików zestawu.Jeśli w nazwie pliku znajdują się spacje, należy nazwę ująć w cudzysłów.

Uwagi

/link Opcja umożliwia wdrażanie aplikacji, która zawiera osadzone informacje o typie.Aplikacji można następnie używać typów w zestawie runtime implementujące informacje osadzone typu bez konieczności odwołania do zestawu runtime.Publikowane są różne wersje zestawu runtime, można pracować aplikację, która zawiera informacje o typie osadzone z różnymi wersjami bez konieczności ponownie skompilowana.Na przykład, zobacz Wskazówki: osadzanie typów z zarządzanych zestawów (C# i Visual Basic).

Za pomocą /link opcja jest szczególnie przydatna podczas pracy z COM interop.Typy COM można osadzić, tak, że aplikacja nie wymaga już podstawowego zestawu międzyoperacyjnego (PIA) na komputerze docelowym./link Opcja nakazuje kompilatorowi osadzanie informacji typu COM z odwołania zestawu międzyoperacyjnego do wynikowy kod skompilowany.Typ COM jest identyfikowany przez wartość identyfikatora CLSID (GUID).W efekcie aplikacja można uruchomić na komputerze docelowym, które zostały zainstalowane te same typy COM z tej samej wartości identyfikatora CLSID.Aplikacje, które automatyzują pakietu Microsoft Office są dobrym przykładem.Ponieważ aplikacje, takie jak Office zazwyczaj zachować tę samą wartość identyfikatora CLSID między różnymi wersjami, aplikacja może używać wskazanych typów modelu COM, tak długo, jak.NET Framework 4 lub nowszy jest zainstalowany na komputerze docelowym i aplikacja używa metody, właściwości lub zdarzenia, które są zawarte w wskazanych typów COM.

/link Opcji osadza tylko interfejsy, struktur i delegatów.Osadzanie klasy COM nie jest obsługiwane.

[!UWAGA]

Podczas tworzenia wystąpienia typu COM z osadzonych w kodzie, należy utworzyć wystąpienie, przy użyciu odpowiedni interfejs.Próby utworzenia wystąpienia osadzonego typu COM za pomocą CoClass powoduje błąd.

Aby ustawić /link opcji w Visual Studio, dodać odwołanie do zestawu i ustawić Embed Interop Types właściwość, aby true.Domyślne dla Embed Interop Types jest właściwość false.

Jeśli łącze do zestawu COM (Assembly A) która sama odwołuje się do innego zestawu COM (montaż B), trzeba również łącze do zestawu B, jeśli spełniony jest jeden z następujących:

  • Typ z zestawu a dziedziczy typ lub implementuje interfejs z zestawu B.

  • Pole, właściwości, zdarzenia lub metodę, która ma typ zwracany typ lub parametr b zgromadzenie jest wywoływany.

Użyj /libpath do określania katalogu, w którym znajduje się jeden lub więcej odwołań do zestawu.

Podobnie jak /Reference opcję kompilatora, /link opcję kompilatora używa pliku odpowiedzi Vbc.rsp, które odwołania często używane .NET Framework zespołów.Użyj /noconfig zostanie zignorowana opcję kompilatora, jeśli nie chcesz, aby kompilator, aby użyć pliku Vbc.rsp.

Formularz skrócony z /link jest /l.

Generyczne i typy osadzone

W poniższych sekcjach opisano ograniczenia przy użyciu typy rodzajowe w aplikacjach, które typy współdziałania osadzić.

Rodzajowy interfejsów

Nie można używać interfejsów rodzajowy, które są osadzone z zestawu międzyoperacyjnego.To jest pokazane w następującym przykładzie.

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

Typy, które mają parametry rodzajowe

Typy, które mają parametru rodzajowego, którego typ jest osadzony z zestawu międzyoperacyjnego nie można użyć Jeśli typ jest z zestawu zewnętrznych.To ograniczenie nie dotyczy interfejsów.Rozważmy na przykład Range interfejsu, który jest zdefiniowany w Microsoft.Office.Interop.Excel zgromadzenia.Jeśli w bibliotece osadza typy współdziałania z Microsoft.Office.Interop.Excel Zgromadzenia i odkrywa metoda, która zwraca typ rodzajowy, który ma parametr, którego typ jest Range interfejsu, metoda musi zwrócić rodzajowy interfejs, jak pokazano w poniższym przykładzie kodu.

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

W poniższym przykładzie kodu klienta może wywołać metodę, która zwraca IList rodzajowy interfejs bez błędu.

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

Przykład

Poniższy kod kompiluje plik źródłowy OfficeApp.vb i odwołuje się do zestawów z COMData1.dll i COMData2.dll do produkcji OfficeApp.exe.

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

Zobacz też

Zadania

Wskazówki: osadzanie typów z zarządzanych zestawów (C# i Visual Basic)

Informacje

/reference (Visual Basic)

/noconfig

/libpath

Kompilacja przykładów — wiersze poleceń (Visual Basic)

Koncepcje

Wprowadzenie do COM Interop (Visual Basic)

Inne zasoby

Kompilator wierszy poleceń w Visual Basic