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
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.
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.
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
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.
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.
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
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.
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:
|
-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. |