Exemplarische Vorgehensweise: Einbetten von Typen aus verwalteten Assemblys in Visual Studio (C#)Walkthrough: Embedding Types from Managed Assemblies in Visual Studio (C#)

Wenn Sie Typinformationen von einer verwalteten Assembly mit starkem Namen einbetten, können Sie Typen in einer Anwendung lose koppeln, um versionsunabhängig zu werden.If you embed type information from a strong-named managed assembly, you can loosely couple types in an application to achieve version independence. Ihr Programm kann daher für Typen aus unterschiedlichen Versionen einer verwalteten Bibliothek geschrieben werden; eine erneute Kompilierung für jede Version ist nicht erforderlich.That is, your program can be written to use types from multiple versions of a managed library without having to be recompiled for each version.

Das Einbetten von Typen wird häufig mit COM-Interop verwendet, z.B. mit einer Anwendung, die Automatisierungsobjekte von Microsoft Office verwendet.Type embedding is frequently used with COM interop, such as an application that uses automation objects from Microsoft Office. Das Einbetten von Typinformationen lässt zu, dass derselbe Build eines Programms mit unterschiedlichen Versionen von Microsoft Office auf verschiedenen Computern verwendet werden kann.Embedding type information enables the same build of a program to work with different versions of Microsoft Office on different computers. Sie können das Einbetten von Typen jedoch auch mit einer vollständig verwalteten Anwendung verwenden.However, you can also use type embedding with a fully managed solution.

Typinformationen können von einer Assembly aus eingebettet werden, die die folgenden Merkmale aufweist:Type information can be embedded from an assembly that has the following characteristics:

  • Die Assembly macht mindestens eine öffentliche Schnittstelle verfügbar.The assembly exposes at least one public interface.

  • Die eingebetteten Schnittstellen werden mit einem ComImport-Attribut und einem Guid-Attribut (und einer eindeutigen GUID) kommentiert.The embedded interfaces are annotated with a ComImport attribute and a Guid attribute (and a unique GUID).

  • Die Assembly wird mit dem ImportedFromTypeLib-Attribut oder dem PrimaryInteropAssembly-Attribut und einem Guid-Attribut auf Assemblyebene kommentiert.The assembly is annotated with the ImportedFromTypeLib attribute or the PrimaryInteropAssembly attribute, and an assembly-level Guid attribute. (Standardmäßig enthalten Visual C#-Projektvorlagen ein Guid-Attribut auf Assemblyebene.)(By default, Visual C# project templates include an assembly-level Guid attribute.)

Nachdem Sie die öffentlichen Schnittstellen angegeben haben, die eingebettet werden können, können Sie Laufzeitklassen erstellen, die diese Schnittstellen implementieren.After you have specified the public interfaces that can be embedded, you can create runtime classes that implement those interfaces. Ein Clientprogramm kann dann die Typinformationen für diese Schnittstellen zur Entwurfszeit einbetten, indem auf die Assembly verwiesen wird, die die öffentlichen Schnittstellen enthält und die Eigenschaft Embed Interop Types des Verweises auf True festgelegt wird.A client program can then embed the type information for those interfaces at design time by referencing the assembly that contains the public interfaces and setting the Embed Interop Types property of the reference to True. Dies entspricht dem Verwenden des Befehlszeilencompilers und Verweisen auf die Assembly mit der Compileroption /link.This is equivalent to using the command line compiler and referencing the assembly by using the /link compiler option. Das Clientprogramm kann dann Instanzen Ihrer Laufzeitobjekte laden, die als diese Schnittstellen typisiert sind.The client program can then load instances of your runtime objects typed as those interfaces. Wenn Sie eine neue Version Ihrer Runtime-Assembly mit starkem Namen erstellen, muss das Clientprogramm nicht erneut mit der aktualisierten Runtime-Assembly kompiliert werden.If you create a new version of your strong-named runtime assembly, the client program does not have to be recompiled with the updated runtime assembly. Stattdessen verwendet das Clientprogramm weiterhin die verfügbare Version der Runtime-Assembly und verwendet die eingebetteten Typinformationen für die öffentlichen Schnittstellen.Instead, the client program continues to use whichever version of the runtime assembly is available to it, using the embedded type information for the public interfaces.

Da die primäre Funktion des Einbettens von Typen die Unterstützung des Einbettens von Typinformationen von COM-Interop-Assemblys ist, gelten die folgenden Einschränkungen, wenn Sie Typinformationen in eine vollständig verwaltete Lösung einbetten:Because the primary function of type embedding is to support embedding of type information from COM interop assemblies, the following limitations apply when you embed type information in a fully managed solution:

  • Nur die für COM-Interop spezifischen Attribute werden eingebettet; andere Attribute werden ignoriert.Only attributes specific to COM interop are embedded; other attributes are ignored.

  • Wenn ein Typ generische Parameter verwendet, und der Typ des generischen Parameters ein eingebetteter Typ ist, kann dieser Typ nicht über die Grenze einer Assembly hinaus verwendet werden.If a type uses generic parameters and the type of the generic parameter is an embedded type, that type cannot be used across an assembly boundary. Beispiele für das Überschreiten der Grenze einer Assembly umfassen das Aufrufen einer Methode von einer anderen Assembly aus oder das Ableiten eines Typs von einem Typ, der in einer anderen Assembly definiert wurde.Examples of crossing an assembly boundary include calling a method from another assembly or a deriving a type from a type defined in another assembly.

  • Konstanten werden nicht eingebettet.Constants are not embedded.

  • Die System.Collections.Generic.Dictionary<TKey,TValue>-Klasse unterstützt keinen eingebetteten Typ als Schlüssel.The System.Collections.Generic.Dictionary<TKey,TValue> class does not support an embedded type as a key. Sie können Ihren eigenen Wörterbuchtyp implementieren, um einen eingebetteten Typ als Schlüssel zu unterstützen.You can implement your own dictionary type to support an embedded type as a key.

Im Verlauf dieser exemplarischen Vorgehensweise führen Sie folgende Aufgaben aus:In this walkthrough, you will do the following:

  • Erstellen Sie eine Assembly mit starkem Namen mit einer öffentlichen Schnittstelle, die Typinformationen enthält, die eingebettet werden können.Create a strong-named assembly that has a public interface that contains type information that can be embedded.

  • Erstellen Sie eine Runtime-Assembly mit starkem Namen, die diese öffentliche Schnittstelle implementiert.Create a strong-named runtime assembly that implements that public interface.

  • Erstellen Sie ein Clientprogramm, das die Typinformationen aus der öffentlichen Schnittstelle einbettet und eine Instanz der Klasse aus der Runtime-Assembly erstellt.Create a client program that embeds the type information from the public interface and creates an instance of the class from the runtime assembly.

  • Ändern Sie die Runtime-Assembly, und erstellen Sie sie erneut.Modify and rebuild the runtime assembly.

  • Führen Sie das Clientprogramm aus, um zu prüfen, dass die neue Version der Runtime-Assembly verwendet wird, ohne dass das Clientprogramm erneut kompiliert werden muss.Run the client program to see that the new version of the runtime assembly is being used without having to recompile the client program.

Hinweis

Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten.Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig.The Visual Studio edition that you have and the settings that you use determine these elements. Weitere Informationen finden Sie unter Personalisieren der IDE.For more information, see Personalizing the IDE.

Erstellen einer SchnittstelleCreating an Interface

So erstellen Sie das Schnittstellenprojekt mit TypäquivalenzTo create the type equivalence interface project

  1. Wählen Sie in Visual Studio im Menü Datei die Option Neu aus, und klicken Sie auf Projekt.In Visual Studio, on the File menu, choose New and then click Project.

  2. Überprüfen Sie, ob im Dialogfeld Neues Projekt im Bereich Projekttypen der Eintrag Windows ausgewählt ist.In the New Project dialog box, in the Project Types pane, make sure that Windows is selected. Wählen Sie im Bereich Vorlagen die Option Klassenbibliothek aus.Select Class Library in the Templates pane. Geben Sie im Feld Name die Bezeichnung TypeEquivalenceInterface ein, und klicken Sie dann auf OK.In the Name box, type TypeEquivalenceInterface, and then click OK. Das neue Projekt wird erstellt.The new project is created.

  3. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Datei „Class1.cs“, und klicken Sie auf Umbenennen.In Solution Explorer, right-click the Class1.cs file and click Rename. Benennen Sie die Datei in ISampleInterface.cs um, und drücken Sie die EINGABETASTE.Rename the file to ISampleInterface.cs and press ENTER. Durch Umbenennen der Datei wird die Klasse ebenfalls in ISampleInterface umbenannt.Renaming the file will also rename the class to ISampleInterface. Diese Klasse stellt die öffentliche Schnittstelle für die Klasse dar.This class will represent the public interface for the class.

  4. Klicken Sie mit der rechten Maustaste auf das Projekt „TypeEquivalenceInterface“, und klicken Sie auf Eigenschaften.Right-click the TypeEquivalenceInterface project and click Properties. Klicken Sie auf die Registerkarte Erstellen. Legen Sie den Ausgabepfad auf einen gültigen Speicherort auf dem Entwicklungscomputer fest, z.B. auf C:\TypeEquivalenceSample.Click the Build tab. Set the output path to a valid location on your development computer, such as C:\TypeEquivalenceSample. Dieser Speicherort wird auch in einem späteren Schritt in dieser exemplarischen Vorgehensweise verwendet.This location will also be used in a later step in this walkthrough.

  5. Klicken Sie auf die Schaltfläche Signierung, während Sie noch die Projekteigenschaften bearbeiten. Wählen Sie die Option Assembly signieren aus.While still editing the project properties, click the Signing tab. Select the Sign the assembly option. Klicken Sie in der Liste Schlüsseldatei mit starkem Namen auswählen auf <Neu...>.In the Choose a strong name key file list, click <New...>. Geben Sie im Feld Schlüsseldateiname key.snkein.In the Key file name box, type key.snk. Deaktivieren Sie das Kontrollkästchen Schlüsseldatei mit Kennwort schützen.Clear the Protect my key file with a password check box. Klicken Sie auf OK.Click OK.

  6. Öffnen Sie die Datei „ISampleInterface.cs“.Open the ISampleInterface.cs file. Fügen Sie den folgenden Code zur Klasse „ISampleInterface“ hinzu, um die ISampleInterface-Schnittstelle zu erstellen.Add the following code to the ISampleInterface class file to create the ISampleInterface interface.

    using System;  
    using System.Runtime.InteropServices;  
    
    namespace TypeEquivalenceInterface  
    {  
        [ComImport]  
        [Guid("8DA56996-A151-4136-B474-32784559F6DF")]  
        public interface ISampleInterface  
        {  
            void GetUserInput();  
            string UserInput { get; }  
        }  
    }  
    
  7. Klicken Sie im Menü Extras auf den Befehl GUID erstellen.On the Tools menu, click Create Guid. Klicken Sie im Dialogfeld GUID erstellen auf Registrierungsformat und anschließend auf Kopieren.In the Create GUID dialog box, click Registry Format and then click Copy. Klicken Sie auf Schließen.Click Exit.

  8. Löschen Sie die Beispiel-GUID im Attribut Guid, und fügen Sie die GUID ein, die Sie aus dem Dialogfeld GUID erstellen kopiert haben.In the Guid attribute, delete the sample GUID and paste in the GUID that you copied from the Create GUID dialog box. Entfernen Sie die geschweiften Klammern ({}) aus der kopierten GUID.Remove the braces ({}) from the copied GUID.

  9. Erweitern Sie im Projektmappen-Explorer den Ordner Eigenschaften.In Solution Explorer, expand the Properties folder. Doppelklicken Sie auf die Datei „AssemblyInfo.cs“.Double-click the AssemblyInfo.cs file. Fügen Sie folgendes Attribut zur Datei hinzu.Add the following attribute to the file.

    [assembly: ImportedFromTypeLib("")]  
    

    Speichern Sie die Datei.Save the file.

  10. Speichern Sie das Projekt.Save the project.

  11. Klicken Sie mit der rechten Maustaste auf das Projekt „TypeEquivalenceInterface“, und klicken Sie auf Erstellen.Right-click the TypeEquivalenceInterface project and click Build. Die DLL-Datei der Klassenbibliothek wird kompiliert und im angegebenen Buildausgabepfad gespeichert (z.B. C:\TypeEquivalenceSample).The class library .dll file is compiled and saved to the specified build output path (for example, C:\TypeEquivalenceSample).

Erstellen einer Runtime-KlasseCreating a Runtime Class

So erstellen Sie das Runtime-Projekt mit TypäquivalenzTo create the type equivalence runtime project

  1. Zeigen Sie in Visual Studio im Menü Datei auf Neu, und klicken Sie auf Projekt.In Visual Studio, on the File menu, point to New and then click Project.

  2. Überprüfen Sie, ob im Dialogfeld Neues Projekt im Bereich Projekttypen der Eintrag Windows ausgewählt ist.In the New Project dialog box, in the Project Types pane, make sure that Windows is selected. Wählen Sie im Bereich Vorlagen die Option Klassenbibliothek aus.Select Class Library in the Templates pane. Geben Sie im Feld Name die Bezeichnung TypeEquivalenceRuntime ein, und klicken Sie dann auf OK.In the Name box, type TypeEquivalenceRuntime, and then click OK. Das neue Projekt wird erstellt.The new project is created.

  3. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Datei „Class1.cs“, und klicken Sie auf Umbenennen.In Solution Explorer, right-click the Class1.cs file and click Rename. Benennen Sie die Datei in SampleClass.cs um, und drücken Sie die EINGABETASTE.Rename the file to SampleClass.cs and press ENTER. Durch Umbenennen der Datei wird die Klasse ebenfalls in SampleClass umbenannt.Renaming the file also renames the class to SampleClass. Diese Klasse implementiert die ISampleInterface-Schnittstelle.This class will implement the ISampleInterface interface.

  4. Klicken Sie mit der rechten Maustaste auf das Projekt „TypeEquivalenceRuntime“, und klicken Sie auf Eigenschaften.Right-click the TypeEquivalenceRuntime project and click Properties. Klicken Sie auf die Registerkarte Erstellen. Legen Sie den Ausgabepfad auf denselben Speicherort fest, den Sie im Projekt „TypeEquivalenceInterface“ verwendet haben, z.B. auf C:\TypeEquivalenceSample.Click the Build tab. Set the output path to the same location you used in the TypeEquivalenceInterface project, for example, C:\TypeEquivalenceSample.

  5. Klicken Sie auf die Schaltfläche Signierung, während Sie noch die Projekteigenschaften bearbeiten. Wählen Sie die Option Assembly signieren aus.While still editing the project properties, click the Signing tab. Select the Sign the assembly option. Klicken Sie in der Liste Schlüsseldatei mit starkem Namen auswählen auf <Neu...>.In the Choose a strong name key file list, click <New...>. Geben Sie im Feld Schlüsseldateiname key.snkein.In the Key file name box, type key.snk. Deaktivieren Sie das Kontrollkästchen Schlüsseldatei mit Kennwort schützen.Clear the Protect my key file with a password check box. Klicken Sie auf OK.Click OK.

  6. Klicken Sie mit der rechten Maustaste auf das Projekt „TypeEquivalenceRuntime“, und klicken Sie auf Verweis hinzufügen.Right-click the TypeEquivalenceRuntime project and click Add Reference. Klicken Sie auf die Registerkarte Durchsuchen, und navigieren Sie zum Ausgabeordner für den Pfad.Click the Browse tab and browse to the output path folder. Wählen Sie die Datei „TypeEquivalenceInterface.dll“ aus, und klicken Sie auf OK.Select the TypeEquivalenceInterface.dll file and click OK.

  7. Erweitern Sie im Projektmappen-Explorer den Ordner Verweise.In Solution Explorer, expand the References folder. Wählen Sie den Verweis „TypeEquivalenceInterface“ aus.Select the TypeEquivalenceInterface reference. Legen Sie im Eigenschaftenfenster für den Verweis „TypeEquivalenceInterface“ die Eigenschaft Spezifische Version auf False fest.In the Properties window for the TypeEquivalenceInterface reference, set the Specific Version property to False.

  8. Fügen Sie den folgenden Code zur Klassendatei „SampleClass“ hinzu, um die Klasse SampleClass zu erstellen.Add the following code to the SampleClass class file to create the SampleClass class.

    using System;  
    using System.Collections.Generic;  
    using System.Linq;  
    using System.Text;  
    using TypeEquivalenceInterface;  
    
    namespace TypeEquivalenceRuntime  
    {  
        public class SampleClass : ISampleInterface  
        {  
            private string p_UserInput;  
            public string UserInput { get { return p_UserInput; } }  
    
            public void GetUserInput()  
            {  
                Console.WriteLine("Please enter a value:");  
                p_UserInput = Console.ReadLine();  
            }  
        }  
    )  
    
  9. Speichern Sie das Projekt.Save the project.

  10. Klicken Sie mit der rechten Maustaste auf das Projekt „TypeEquivalenceRuntime“, und klicken Sie auf Erstellen.Right-click the TypeEquivalenceRuntime project and click Build. Die DLL-Datei der Klassenbibliothek wird kompiliert und im angegebenen Buildausgabepfad gespeichert (z.B. C:\TypeEquivalenceSample).The class library .dll file is compiled and saved to the specified build output path (for example, C:\TypeEquivalenceSample).

Erstellen eines ClientprojektsCreating a Client Project

So erstellen Sie das Clientprojekt mit TypäquivalenzTo create the type equivalence client project

  1. Zeigen Sie in Visual Studio im Menü Datei auf Neu, und klicken Sie auf Projekt.In Visual Studio, on the File menu, point to New and then click Project.

  2. Überprüfen Sie, ob im Dialogfeld Neues Projekt im Bereich Projekttypen der Eintrag Windows ausgewählt ist.In the New Project dialog box, in the Project Types pane, make sure that Windows is selected. Wählen Sie im Bereich Vorlagen die Option Konsolenanwendung aus.Select Console Application in the Templates pane. Geben Sie im Feld Name die Bezeichnung TypeEquivalenceClient ein, und klicken Sie dann auf OK.In the Name box, type TypeEquivalenceClient, and then click OK. Das neue Projekt wird erstellt.The new project is created.

  3. Klicken Sie mit der rechten Maustaste auf das Projekt „TypeEquivalenceClient“, und klicken Sie auf Eigenschaften.Right-click the TypeEquivalenceClient project and click Properties. Klicken Sie auf die Registerkarte Erstellen. Legen Sie den Ausgabepfad auf denselben Speicherort fest, den Sie im Projekt „TypeEquivalenceInterface“ verwendet haben, z.B. auf C:\TypeEquivalenceSample.Click the Build tab. Set the output path to the same location you used in the TypeEquivalenceInterface project, for example, C:\TypeEquivalenceSample.

  4. Klicken Sie mit der rechten Maustaste auf das Projekt „TypeEquivalenceClient“, und klicken Sie auf Verweis Hinzufügen.Right-click the TypeEquivalenceClient project and click Add Reference. Klicken Sie auf die Registerkarte Durchsuchen, und navigieren Sie zum Ausgabeordner für den Pfad.Click the Browse tab and browse to the output path folder. Wählen Sie die Datei „TypeEquivalenceInterface.dll“ aus (nicht „TypeEquivalenceRuntime.dll“), und klicken Sie auf OK.Select the TypeEquivalenceInterface.dll file (not the TypeEquivalenceRuntime.dll) and click OK.

  5. Erweitern Sie im Projektmappen-Explorer den Ordner Verweise.In Solution Explorer, expand the References folder. Wählen Sie den Verweis „TypeEquivalenceInterface“ aus.Select the TypeEquivalenceInterface reference. Legen Sie im Eigenschaftenfenster für den Verweis „TypeEquivalenceInterface“ die Eigenschaft Einbetten von Interop-Typen auf True fest.In the Properties window for the TypeEquivalenceInterface reference, set the Embed Interop Types property to True.

  6. Fügen Sie folgenden Code zur Datei „Program.cs“ hinzu, um das Clientprogramm zu erstellen.Add the following code to the Program.cs file to create the client program.

    using System;  
    using System.Collections.Generic;  
    using System.Linq;  
    using System.Text;  
    using TypeEquivalenceInterface;  
    using System.Reflection;  
    
    namespace TypeEquivalenceClient  
    {  
        class Program  
        {  
            static void Main(string[] args)  
            {  
                Assembly sampleAssembly = Assembly.Load("TypeEquivalenceRuntime");  
                ISampleInterface sampleClass =   
                    (ISampleInterface)sampleAssembly.CreateInstance("TypeEquivalenceRuntime.SampleClass");  
                sampleClass.GetUserInput();  
                Console.WriteLine(sampleClass.UserInput);  
                Console.WriteLine(sampleAssembly.GetName().Version.ToString());  
                Console.ReadLine();  
            }  
        }  
    }  
    
  7. Drücken Sie STRG+F5, um das Programm zu erstellen und auszuführen.Press CTRL+F5 to build and run the program.

Ändern der SchnittstelleModifying the Interface

So ändern Sie die SchnittstelleTo modify the interface

  1. Zeigen Sie in Visual Studio im Menü Datei auf Öffnen, und klicken Sie auf Projekt/Projektmappe.In Visual Studio, on the File menu, point to Open, and then click Project/Solution.

  2. Klicken Sie im Dialogfeld Projekt öffnen mit der rechten Maustaste auf das Projekt „TypeEquivalenceInterface“, und klicken Sie auf Eigenschaften.In the Open Project dialog box, right-click the TypeEquivalenceInterface project, and then click Properties. Klicken Sie auf die Registerkarte Anwendung . Klicken Sie auf die Schaltfläche Assemblyinformationen.Click the Application tab. Click the Assembly Information button. Ändern Sie die Werte der Assemblyversion und der Dateiversion in 2.0.0.0.Change the Assembly Version and File Version values to 2.0.0.0.

  3. Öffnen Sie die Datei „SampleInterface.cs“.Open the SampleInterface.cs file. Fügen Sie der ISampleInterface-Schnittstelle die folgende Codezeile hinzu.Add the following line of code to the ISampleInterface interface.

    DateTime GetDate();  
    

    Speichern Sie die Datei.Save the file.

  4. Speichern Sie das Projekt.Save the project.

  5. Klicken Sie mit der rechten Maustaste auf das Projekt „TypeEquivalenceInterface“, und klicken Sie auf Erstellen.Right-click the TypeEquivalenceInterface project and click Build. Eine neue Version der DLL-Datei der Klassenbibliothek wird kompiliert und im angegebenen Buildausgabepfad gespeichert (z.B. C:\TypeEquivalenceSample).A new version of the class library .dll file is compiled and saved in the specified build output path (for example, C:\TypeEquivalenceSample).

Ändern der Runtime-KlasseModifying the Runtime Class

So ändern Sie die Runtime-KlasseTo modify the runtime class

  1. Zeigen Sie in Visual Studio im Menü Datei auf Öffnen, und klicken Sie auf Projekt/Projektmappe.In Visual Studio, on the File menu, point to Open, and then click Project/Solution.

  2. Klicken Sie im Dialogfeld Projekt öffnen mit der rechten Maustaste auf das Projekt „TypeEquivalenceRuntime“, und klicken Sie auf Eigenschaften.In the Open Project dialog box, right-click the TypeEquivalenceRuntime project and click Properties. Klicken Sie auf die Registerkarte Anwendung . Klicken Sie auf die Schaltfläche Assemblyinformationen.Click the Application tab. Click the Assembly Information button. Ändern Sie die Werte der Assemblyversion und der Dateiversion in 2.0.0.0.Change the Assembly Version and File Version values to 2.0.0.0.

  3. Öffnen Sie die Datei „SampleClass.cs“.Open the SampleClass.cs file. Fügen Sie folgenden Codezeilen zur Klasse „SampleClass“ hinzu.Add the following lines of code to the SampleClass class.

    public DateTime GetDate()  
    {  
        return DateTime.Now;  
    }  
    

    Speichern Sie die Datei.Save the file.

  4. Speichern Sie das Projekt.Save the project.

  5. Klicken Sie mit der rechten Maustaste auf das Projekt „TypeEquivalenceRuntime“, und klicken Sie auf Erstellen.Right-click the TypeEquivalenceRuntime project and click Build. Eine aktualisierte Version der DLL-Datei der Klassenbibliothek wird kompiliert und im vorher angegebenen Buildausgabepfad gespeichert (z.B. C:\TypeEquivalenceSample).An updated version of the class library .dll file is compiled and saved in the previously specified build output path (for example, C:\TypeEquivalenceSample).

  6. Öffnen Sie im Datei-Explorer den Ordner mit dem Ausgabepfad (z.B. C:\TypeEquivalenceSample).In File Explorer, open the output path folder (for example, C:\TypeEquivalenceSample). Doppelklicken Sie auf die Datei „TypeEquivalenceClient.exe“, um das Programm auszuführen.Double-click the TypeEquivalenceClient.exe to run the program. Das Programm reflektiert die neue Version der TypeEquivalenceRuntime-Assembly, ohne dass sie erneut kompiliert werden muss.The program will reflect the new version of the TypeEquivalenceRuntime assembly without having been recompiled.

Siehe auchSee Also

-link (C#-Compileroptionen)/link (C# Compiler Options)
C#-ProgrammierhandbuchC# Programming Guide
Programmieren mit AssemblysProgramming with Assemblies
Assemblies and the Global Assembly Cache (C#) (Assemblys und der globale Assemblycache (C#))Assemblies and the Global Assembly Cache (C#)