Gewusst wie: Kompilieren über die Eingabeaufforderung

Aktualisiert: Juli 2008

Es gibt mehrere Möglichkeiten, an der Eingabeaufforderung eine .NET Compact Framework-Anwendung zu kompilieren. Hierzu gehört Folgendes:

  • Verwenden von Microsoft Build Engine (MSBuild).

  • Verwenden von Batchdateien.

Beide Methoden verwenden die von Windows Software Development Kit (SDK) bereitgestellten Visual C#- und Visual Basic-Compiler. MSBuild erfordert jedoch TARGETS-Dateien, die derzeit nur im Lieferumfang von Visual Studio enthalten sind.

Kompilieren mithilfe von MSBuild

So kompilieren Sie über die Eingabeaufforderung mit MSBuild

  1. Stellen Sie sicher, dass sich MSBuild.exe im Systempfad befindet.

    MSBuild.exe befindet sich in %systemroot%\Microsoft.NET\Framework\version. Die Systempfadvariable muss diesen Pfad abdecken.

  2. Navigieren Sie an der Eingabeaufforderung zu dem Verzeichnis, das die Projektdatei für die .NET Compact Framework-Anwendung enthält. Die Projektdatei hat die Erweiterung .sln, .vbproj oder .csproj.

  3. Geben Sie folgenden Befehl ein:

    msbuild.exe projectname
    

    Das Eingabeaufforderungsfenster enthält Informationen zum Buildprozess.

Kompilieren mithilfe von Batchdateien

Sie können Batchdateien verwenden, um statt der vollständigen .NET Framework (Desktop)-Assemblys die .NET Framework-Assemblys zu verwenden. Batchdateien können direkt verwendet oder aus einem Makefile-Dienstprogramm abgerufen werden. Sie ermöglichen die Integration von .NET Compact Framework in Buildsysteme von Unternehmen.

Die Batchdatei enthält die folgenden Informationen:

  • Eine Pfadvariable zum Speicherort der .NET Compact Framework-Assemblys. Im folgenden Beispiel wird NETCF_PATH verwendet.

    Hinweis:

    Sie können den Pfad auch in einer Makefile oder über das Dialogfeld Eigenschaften von Arbeitsplatz als Umgebungsvariable angeben.

  • Verweist nach Bedarf auf Assemblys. Sie verwenden den -r-Schalter und verketten die Assemblys in einer Variablen.

  • Compilerbefehle mit den entsprechenden Schaltern und Argumenten, wie weiter unten in diesem Thema im Abschnitt "Compilerschalter" beschrieben. Die Argumente enthalten Variablenverweise und ein Sternchen (*), um zusätzliche Argumente einzubinden.

So erstellen Sie eine Batchdatei zum Kompilieren

  1. Erstellen Sie eine neue Datei in einem Texteditor, und fügen Sie, wie im folgenden Beispiel gezeigt, den Inhalt der Beispielbatchdatei für Ihre bevorzugte Programmiersprache hinzu.

  2. Passen Sie gegebenenfalls die NETCF_PATH-Variable an.

    Die .NET Compact Framework-Assemblys befinden sich standardmäßig im Ordner C:\Programme\Microsoft.NET\SDK\Version\CompactFramework\WindowsCE.

    Hinweis:

    Wenn Sie .NET Compact Framework verwenden, das zum Lieferumfang von Visual Studio 2008 gehört, befinden sich die Assemblys im Ordner C:\Programme\Visual Studio-Version\SmartDevices\SDK\CompactFramework\Version\WindowsCE.

  3. Benennen und speichern Sie die Datei (z. B. vbcc.bat bei einer Visual Basic-Batchdatei oder cscc.bat bei einer C#-Batchdatei).

So kompilieren Sie eine Anwendung mit einer Batchdatei

  1. Stellen Sie sicher, dass der Systempfad .NET Framework enthält.

    Der Visual Basic-Compiler (vbc.exe) und der Visual C#-Compiler (csc.exe) befinden sich im Ordner %systemroot%\Microsoft.NET\Framework\version. Die Systempfadvariable muss diesen Pfad abdecken.

  2. Geben Sie wie im folgenden Beispiel an der Eingabeaufforderung den Namen der Batchdatei gefolgt von der Quelldatei ein.

    vbcc myapp.vb
    

    Abhängig davon, welcher Compiler verwendet wird, muss die Quelldatei die Erweiterung CS oder VB haben.

Die ausführbare Datei, die auf das Gerät oder den Emulator kopiert werden kann, wird im aktuellen Verzeichnis erstellt.

Batchdatei für C#-Kompilierung

Die folgende Datei ist eine Beispielbatchdatei für das Kompilieren in C#.

@echo off

if "%NETCF_PATH%" == "" (
  set NETCF_PATH=c:\Program Files\Microsoft.NET\SDK\v3.5\CompactFramework\WindowsCE)

if DEFINED REF ( set REF= )

set REF=%REF% "/r:%NETCF_PATH%\MsCorlib.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.Data.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.Drawing.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.Messaging.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.Net.IrDA.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.Web.Services.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.Windows.Forms.DataGrid.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.Windows.Forms.dll"
set REF=%REF% "/r:%NETCF_PATH%\Microsoft.WindowsCE.Forms.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.Xml.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.ServiceModel.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.Xml.Xlinq.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.Data.Entity.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.Runtime.Serialization.dll"
set REF=%REF% "/r:%NETCF_PATH%\Microsoft.WindowsMobile.DirectX.dll"
set REF=%REF% "/r:%NETCF_PATH%\Microsoft.ServiceModel.Channels.Mail.dll"
set REF=%REF% "/r:%NETCF_PATH%\Microsoft.ServiceModel.Channels.Mail.WindowsMobile.dll"

csc -nostdlib -noconfig %REF% %*

Batchdatei für Visual Basic-Kompilierung

Die folgende Datei ist eine Beispielbatchdatei für das Kompilieren in Visual Basic.

@echo off

rem Verify the path is correct.
if "%NETCF_PATH%" == "" (
  set NETCF_PATH=c:\Program Files\Microsoft.NET\SDK\v3.5\CompactFramework\WindowsCE)
set SDK_PATH="%NETCF_PATH%"

if DEFINED REF ( set REF= )

set REF=%REF% "/r:%NETCF_PATH%\System.Data.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.Drawing.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.Messaging.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.Net.IrDA.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.Web.Services.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.Windows.Forms.DataGrid.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.Windows.Forms.dll"
set REF=%REF% "/r:%NETCF_PATH%\Microsoft.WindowsCE.Forms.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.Xml.dll"
set REF=%REF% "/r:%NETCF_PATH%\Microsoft.VisualBasic.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.ServiceModel.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.Xml.Xlinq.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.Data.Entity.dll"
set REF=%REF% "/r:%NETCF_PATH%\System.Runtime.Serialization.dll"
set REF=%REF% "/r:%NETCF_PATH%\Microsoft.WindowsMobile.DirectX.dll"
set REF=%REF% "/r:%NETCF_PATH%\Microsoft.ServiceModel.Channels.Mail.dll"
set REF=%REF% "/r:%NETCF_PATH%\Microsoft.ServiceModel.Channels.Mail.WindowsMobile.dll"

set IMP= /Imports:Microsoft.VisualBasic,System,System.Data,System.Drawing,System.Windows.Forms

vbc -sdkpath:%SDK_PATH% -netcf -noconfig -nostdlib %IMP% %REF% %*

Compilerschalter

In der folgenden Tabelle werden die Compilerschalter und Argumente beschrieben.

Schalter

Beschreibung

-r

Verweist nach Bedarf auf Assemblys.

Durch Setzen einer Umgebungsvariablen (z. B. REF) wird standardmäßig auf die meisten .NET Compact Framework-Assemblys verwiesen.

C# erfordert einen expliziten Verweis auf die Datei Mscorlib.dll, und Visual Basic verwendet den -sdkpath-Schalter, um sie zu suchen.

-imports

In Visual Basic sind für die folgenden Namespaces explizite Importe erforderlich:

  • Microsoft.VisualBasic

  • System.System.Data

  • System.Drawing

  • System.Windows.Forms

-nostdlb

Weist den Visual C#-Compiler an, die Assemblys des vollständigen (Desktop-).NET Framework zu ignorieren. Hierdurch wird der Visual Basic-Compiler daran gehindert, die Datei Vbc.rsp zu lesen.

-netcf

Weist den Visual Basic-Compiler an, die Assemblys des vollständigen (Desktop-).NET Framework zu ignorieren.

-noconfig

Erforderlich.

-sdkpath

In Visual Basic für die Suche nach Mscorlib.dll erforderlich.

Siehe auch

Weitere Ressourcen

Erstellen von Anwendungen und Kernaufgaben im .NET Compact Framework

Änderungsverlauf

Date

Versionsgeschichte

Grund

Juli 2008

Enthält Informationen über die Anforderung zum Abrufen von TARGETS-Dateien durch das Installieren von Visual Studio.

Korrektur inhaltlicher Fehler.