Vorgehensweise: Erstellen und Verwenden von Assemblys über die Befehlszeile (C#)How to: Create and Use Assemblies Using the Command Line (C#)

Eine Assembly oder eine dynamisch gebundene Programmbibliothek (DLL) wird zur Laufzeit mit dem Programm verknüpft.An assembly, or a dynamic linking library (DLL), is linked to your program at run time. Betrachten Sie das folgende Szenario, das die Erstellung und Verwendung einer DLL zeigt:To demonstrate building and using a DLL, consider the following scenario:

  • MathLibrary.DLL: Die Bibliotheksdatei enthält die Methoden, die zur Laufzeit aufgerufen werden sollen.MathLibrary.DLL: The library file that contains the methods to be called at run time. In diesem Beispiel enthält die DLL zwei Methoden: Add und Multiply.In this example, the DLL contains two methods, Add and Multiply.

  • Add: Die Quelldatei, die die Methode Add enthält.Add: The source file that contains the method Add. Sie gibt die Summe ihrer Parameter zurück.It returns the sum of its parameters. Die Klasse AddClass, die die Methode Add enthält, gehört zum Namespace UtilityMethods.The class AddClass that contains the method Add is a member of the namespace UtilityMethods.

  • Mult: Der Quellcode, der die Methode Multiply enthält.Mult: The source code that contains the method Multiply. Er gibt die Summe seiner Parameter zurück.It returns the product of its parameters. Die Klasse MultiplyClass, die die Methode Multiply enthält, gehört auch zum Namespace UtilityMethods.The class MultiplyClass that contains the method Multiply is also a member of the namespace UtilityMethods.

  • TestCode: Die Datei, die die Methode Main enthält.TestCode: The file that contains the Main method. Sie verwendet in die DLL-Datei Methoden, um die Summe und das Produkt der Laufzeitargumente zu berechnen.It uses the methods in the DLL file to calculate the sum and the product of the run-time arguments.

BeispielExample

// File: Add.cs   
namespace UtilityMethods  
{  
    public class AddClass   
    {  
        public static long Add(long i, long j)   
        {   
            return (i + j);  
        }  
    }  
}  
// File: Mult.cs  
namespace UtilityMethods   
{  
    public class MultiplyClass  
    {  
        public static long Multiply(long x, long y)   
        {  
            return (x * y);   
        }  
    }  
}  
// File: TestCode.cs  

using UtilityMethods;  

class TestCode  
{  
    static void Main(string[] args)   
    {  
        System.Console.WriteLine("Calling methods from MathLibrary.DLL:");  

        if (args.Length != 2)  
        {  
            System.Console.WriteLine("Usage: TestCode <num1> <num2>");  
            return;  
        }  

        long num1 = long.Parse(args[0]);  
        long num2 = long.Parse(args[1]);  

        long sum = AddClass.Add(num1, num2);  
        long product = MultiplyClass.Multiply(num1, num2);  

        System.Console.WriteLine("{0} + {1} = {2}", num1, num2, sum);  
        System.Console.WriteLine("{0} * {1} = {2}", num1, num2, product);  
    }  
}  
/* Output (assuming 1234 and 5678 are entered as command-line arguments):  
    Calling methods from MathLibrary.DLL:  
    1234 + 5678 = 6912  
    1234 * 5678 = 7006652          
*/  

Diese Datei enthält den Algorithmus, der die DLL-Methoden Add und Multiply verwendet.This file contains the algorithm that uses the DLL methods, Add and Multiply. Zuerst werden die über die Befehlszeile eingegebenen Argumente num1 und num2 analysiert.It starts with parsing the arguments entered from the command line, num1 and num2. Anschließend wird die Summe mithilfe der Methode Add für die AddClass-Klasse und das Produkt mit der Methode Multiply für die MultiplyClass-Klasse berechnet.Then it calculates the sum by using the Add method on the AddClass class, and the product by using the Multiply method on the MultiplyClass class.

Beachten Sie, dass Sie mit der using-Direktive am Anfang der Datei nicht qualifizierte Klassennamen verwenden können, um zum Zeitpunkt der Kompilierung wie folgt auf die DLL-Methoden zu verweisen:Notice that the using directive at the beginning of the file enables you to use the unqualified class names to reference the DLL methods at compile time, as follows:

MultiplyClass.Multiply(num1, num2);  

Andernfalls müssen Sie die vollqualifizierten Namen wie folgt verwenden:Otherwise, you have to use the fully qualified names, as follows:

UtilityMethods.MultiplyClass.Multiply(num1, num2);  

AusführungExecution

Um das Programm auszuführen, geben Sie so den Namen der EXE-Datei gefolgt von zwei Zahlen ein:To run the program, enter the name of the EXE file, followed by two numbers, as follows:

TestCode 1234 5678

Kompilieren des CodesCompiling the Code

Um die Datei MathLibrary.DLL zu erstellen, kompilieren Sie die beiden Dateien Add und Mult mithilfe der folgenden Befehlszeile.To build the file MathLibrary.DLL, compile the two files Add and Mult by using the following command line.

csc /target:library /out:MathLibrary.DLL Add.cs Mult.cs  

Die Compileroption /target:library weist den Compiler an, eine DLL- statt einer EXE-Datei auszugeben.The /target:library compiler option tells the compiler to output a DLL instead of an EXE file. Die Compileroption /out wird gefolgt von einem Dateinamen verwendet, um den Namen der DLL-Datei anzugeben.The /out compiler option followed by a file name is used to specify the DLL file name. Andernfalls verwendet der Compiler die erste Datei (Add.cs) als Name der DLL.Otherwise, the compiler uses the first file (Add.cs) as the name of the DLL.

Um die ausführbare Datei TestCode.exe zu erstellen, verwenden Sie die folgende Befehlszeile:To build the executable file, TestCode.exe, use the following command line:

csc /out:TestCode.exe /reference:MathLibrary.DLL TestCode.cs  

Die Compileroption /out weist den Compiler an, eine EXE-Datei auszugeben, und gibt den Namen der Ausgabedatei (TestCode.exe) an.The /out compiler option tells the compiler to output an EXE file and specifies the name of the output file (TestCode.exe). Diese Compileroption ist optional.This compiler option is optional. Die Compileroption /reference gibt die von diesem Programm verwendeten DLL-Dateien an.The /reference compiler option specifies the DLL file or files that this program uses. Weitere Informationen finden Sie unter /reference.For more information, see /reference.

Weitere Informationen zum Erstellen über die Befehlszeile finden Sie unter Erstellen über die Befehlszeile mit csc.exe.For more information about building from the command line, see Command-line Building With csc.exe.

Siehe auchSee Also

C#-ProgrammierhandbuchC# Programming Guide
Assemblies and the Global Assembly Cache (C#) (Assemblys und der globale Assemblycache (C#))Assemblies and the Global Assembly Cache (C#)
Erstellen einer Klasse zum Halten von DLL-FunktionenCreating a Class to Hold DLL Functions