Partager via


Comment : compiler à l'invite de commandes

Mise à jour : Juillet 2008

Il existe plusieurs méthodes pour compiler une application .NET Compact Framework à l'invite de commandes. et notamment :

  • via Microsoft Build Engine (MSBuild) ;

  • à l'aide de fichiers de commandes.

Ces deux méthodes utilisent les compilateurs Visual C# et Visual Basic qui sont fournis par le Kit de développement logiciel (SDK) Windows. Toutefois, MSBuild nécessite des fichiers .targets qui ne sont actuellement fournis que dans Visual Studio.

Compilation en utilisant MSBuild

Pour générer à partir de l'invite de commandes à l'aide de MSBuild

  1. Vérifiez que MSBuild.exe se trouve dans votre chemin d'accès système.

    MSBuild.exe se trouve dans %systemroot%\Microsoft.NET\Framework\version. La variable du chemin d'accès système doit inclure ce chemin d'accès.

  2. À une invite de commandes, naviguez jusqu'au répertoire contenant le fichier projet pour l'application .NET Compact Framework. Le fichier projet aura l'extension .sln, .vbproj ou .csproj.

  3. Tapez la commande ci-dessous.

    msbuild.exe projectname
    

    La fenêtre d'invite de commandes fournit des informations concernant le processus de génération.

Compilation à l'aide de fichiers de commandes

Vous pouvez utiliser des fichiers de commandes pour cibler les assemblys .NET Compact Framework au lieu des assemblys .NET Framework complet (bureau). Les fichiers de commandes peuvent être utilisés directement ou peuvent être appelés à partir d'un utilitaire de fichier Make pour permettre l'intégration du .NET Compact Framework aux systèmes de génération de l'entreprise.

Le fichier de commandes fournit les informations suivantes :

  • Une variable de chemin d'accès vers l'emplacement des assemblys .NET Compact Framework. L'exemple suivant utilise NETCF_PATH.

    Remarque :

    Vous pouvez aussi spécifier ce chemin d'accès dans un fichier Make, ou comme une variable d'environnement à l'aide de la boîte de dialogue Poste de travail Propriétés.

  • Références aux assemblys, selon les besoins. Vous utilisez le commutateur -r et concaténez les assemblys dans une variable.

  • Commandes de compilateur avec les arguments et les commutateurs appropriés, comme décrit dans la section « Commutateurs de compilation » plus loin dans cette rubrique. Les arguments incluent des références de variable et un astérisque (*) pour incorporer des arguments supplémentaires.

Pour créer un fichier de commandes pour la compilation

  1. Créez un fichier dans un éditeur de texte et ajoutez le contenu de l'exemple de fichier de commandes, comme indiqué dans l'exemple suivant, pour votre langage de programmation par défaut.

  2. Ajustez la variable NETCF_PATH, si nécessaire.

    Par défaut, les assemblys .NET Compact Framework se trouvent dans le dossier C:\Program Files\Microsoft.NET\SDK\version\CompactFramework\WindowsCE.

    Remarque :

    Si vous utilisez le .NET Compact Framework fourni avec Visual Studio 2008, les assemblys se trouvent dans C:\Program Files\Version de Visual Studio\SmartDevices\SDK\CompactFramework\version\WindowsCE.

  3. Enregistrez et nommez le fichier, par exemple vbcc.bat pour un fichier de commandes Visual Basic ou cscc.bat pour un fichier de commandes C#.

Pour compiler une application à l'aide d'un fichier de commandes

  1. Vérifiez que votre chemin d'accès système inclut le .NET Framework.

    Le compilateur Visual Basic (vbc.exe) et le compilateur Visual C# (csc.exe) se trouvent dans le dossier %systemroot%\Microsoft.NET\Framework\version. La variable du chemin d'accès système doit inclure ce chemin d'accès.

  2. À une invite de commandes, entrez le nom du fichier de commandes suivi du fichier source ; par exemple :

    vbcc myapp.vb
    

    Le fichier source doit avoir l'extension .cs ou .vb, selon le compilateur utilisé.

Le fichier exécutable, qui peut être copié vers le périphérique ou l'émulateur, est généré dans le répertoire actif.

Fichier de commandes pour la compilation C#

L'exemple suivant est un exemple de fichier de commandes pour la compilation 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% %*

Fichier de commandes pour la compilation Visual Basic

L'exemple suivant est un exemple de fichier de commandes pour la compilation 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% %*

Commutateurs de compilation

Le tableau suivant décrit les commutateurs de compilation et les arguments.

Commutateur

Description

-r

Référence les assemblys selon les besoins.

Vous pouvez spécifier des assemblys en définissant une variable d'environnement, telle que la REF. La plupart des assemblys .NET Compact Framework sont référencés par défaut.

C# requiert une référence explicite à Mscorlib.dll, et Visual Basic utilise le commutateur -sdkpath pour le localiser.

-imports

Visual Basic requiert des importations explicites pour les espaces de noms suivants :

  • Microsoft.VisualBasic

  • System.System.Data

  • System.Drawing

  • System.Windows.Forms

-nostdlb

Demande au compilateur Visual C# d'ignorer les assemblys du .NET Framework complet (bureau). Pour le compilateur Visual Basic, cela empêche le compilateur de lire le fichier Vbc.rsp.

-netcf

Demande au compilateur Visual Basic d'ignorer les assemblys du .NET Framework complet (bureau).

-noconfig

Obligatoire.

-sdkpath

Requis pour Visual Basic pour localiser Mscorlib.dll.

Voir aussi

Autres ressources

Génération d'applications et de tâches principales dans le .NET Compact Framework

Historique des modifications

Date

Historique

Raison

Juillet 2008

Insertion d'informations sur le besoin d'obtenir des fichiers .targets en installant Visual Studio.

Résolution des bogues de contenu.