Partager via


ProjectUpgradeTool

Remarque

Cet outil n’est plus inclus dans le WDK. Vous pouvez toujours le trouver dans le WDK pour Windows 10, version 1607.

ProjectUpgradeTool prend le projet Microsoft Visual Studio 2012 (*.vcxproj) et les fichiers de solution (*.sln) qui ont été créés avec le Kit de pilotes Windows (WDK) pour Windows 8 et les mettez à niveau pour travailler avec wdK pour Windows 8.1 et Microsoft Visual Studio 2013.

Important , ProjectUpgradeTool ne modifie pas vos fichiers sources. L’outil convertit uniquement les fichiers projet et solutions. Par défaut, l’outil enregistre une copie de sauvegarde des fichiers d’origine.

Pour mettre à niveau un projet ou une solution WDK 8 vers WDK 8.1

  1. Ouvrez une fenêtre d’invite de commandes Visual Studio.

  2. Tapez la commande ProjectUpgradeTool et spécifiez le répertoire racine (ou parent) qui contient les fichiers de projet ou de solution WDK (Windows Driver Kit) 8 que vous souhaitez mettre à niveau vers le Kit de pilotes Windows (WDK) 8.1 pour Windows 8.1. Par exemple, la commande suivante met à niveau tous les fichiers dans le répertoire C :\myDriver et les sous-répertoires.

    ProjectUpgradeTool.exe  C:\myDriver
    
  3. Ouvrez les fichiers projet ou solution WDK 8.1 à l’aide de Visual Studio 2013. L’outil conserve les noms d’origine des fichiers. Les versions précédentes sont enregistrées avec l’extension de nom de fichier .backup. Remarque : Si vous souhaitez être en mesure de générer des cibles pour Windows Vista, à l’aide de Visual Studio 2013 et WDK 8.1, voir Que faire si vous ne parvenez pas à générer une cible Windows Vista après la migration d’un projet WDK 8 vers WDK 8.1.

Syntaxe ProjectUpgradeTool

L’outil de mise à niveau du projet se trouve dans le répertoire %WindowsSdkDir%\bin\x86\. Par exemple, C :\Program Files (x86)\Windows Kits\8.1\bin\x86.

La ProjectUpgradeTool.exe a la syntaxe suivante :

ProjectUpgradeTool.exe  < rootDir >
                          [-Log:[<LogFile>]:[<Verbosity>]]
                          [-ConsoleLog:<Verbosity>]
                          [-NoBackup]
                          [-NoToolsetUpgrade]
                          [-InPlaceUpgrade]
                          [-ForceUpgrade]
                          [-KeepObsoleteConfigs]   

-Log :<LogFile> :[<Verbosity]>

Spécifie un nom pour le fichier journal et spécifie le niveau de journalisation (voir Verbosity).

-ConsoleLog :<Verbosity>

Spécifie un nom pour le fichier journal console et spécifie le niveau de journalisation (voir Verbosity).

Commentaires

Les niveaux de journalisation par défaut pour la journalisation des fichiers journaux et de la journalisation de la console sont respectivement détaillés et d’informations . Verbosity est l’un des systèmes System.Diagnostics.SourceLevels.

-NoBackup

Indique à ProjectUpgradeTool de ne pas effectuer de copie de sauvegarde du projet d’origine (.vcxproj) ou des solutions (.sln). Lorsque vous sélectionnez cette option, les fichiers de projet et de solution d’origine sont remplacés et fonctionnent uniquement avec wdK pour Windows 8.1 et Visual Studio 2013.

-NoToolsetUpgrade

Spécifiez l’option -NoToolsetUpgrade si vous ne souhaitez pas utiliser l’ensemble d’outils de plateforme WDK 8.1 lorsque vous spécifiez des configurations de build pour les versions de Windows antérieures à Windows 8.1. Lorsque vous sélectionnez cette option, seules les configurations WinPreRel sont générées à l’aide du WDK le plus récent.

-InPlaceUpgrade

Remplace chaque configuration de build existante par la nouvelle configuration WinPreRel . Cela vous empêche de générer pour les versions précédentes de Windows.

-ForceUpgrade

Force chaque fichier projet (.vcxproj) à être mis à niveau, même si le projet ne répond pas aux exigences d’un projet pilote.

-KeepObsoleteConfigs

Conserve les configurations cibles pour les systèmes d’exploitation qui ne sont plus pris en charge par le WDK (par exemple, Windows Vista). Toutefois, pour générer ces cibles obsolètes, vous devez disposer de Visual Studio 2012 et de WDK 8 installés sur l’ordinateur, en plus de WDK 8.1 et Visual Studio 2013. Par exemple, supposons que vous souhaitez mettre à niveau le projet de pilote pour utiliser WDK 8.1 pour toutes les versions cibles prises en charge (Windows 7, Windows 8 et Windows 8.1). Et vous souhaitez toujours utiliser le même projet de pilote pour continuer à générer pour Windows Vista. Pour ce faire, vous mettez à niveau le fichier projet à l’aide de l’option -KeepObsoleteConfigs pour conserver la configuration cible de Windows Vista dans le projet. La configuration de Windows Vista continuera à utiliser l’ensemble d’outils WindowsKernelModeDriver8.0 (disponible dans WDK 8), même si vous générez le projet dans Visual Studio 2013.

Commentaires

Que faire si vous voyez l’erreur MSB8020 (ensemble d’outils de plateforme = « WindowsKernelModeDriver8.0 ») introuvable

Si vous tentez d’ouvrir un projet ou une solution créé avec WDK 8, vous pouvez voir le message d’erreur suivant lorsque vous tentez de générer le projet à l’aide de WDK 8.1.

1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(54,5): error MSB8020: The builds tools for WindowsKernelModeDriver8.0 (Platform Toolset = 'WindowsKernelModeDriver8.0') cannot be found. To build using the WindowsKernelModeDriver8.0 build tools, please install WindowsKernelModeDriver8.0 build tools. Alternatively, you may update to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Update VC++ Projects...".

L’ensemble d’outils de plateforme dans WDK 8 était WindowsKernelModeDriver8.0. Pour corriger cette erreur, exécutez ProjectUpgradeTool comme décrit ici et mettez à niveau votre solution WDK 8 pour utiliser l’ensemble d’outils disponible dans WDK 8.1

Que faire si vous ne parvenez pas à générer une cible Windows Vista après la migration d’un projet WDK 8 vers WDK 8.1

Problème : Impossible de générer une cible Windows Vista après la migration d’un projet WDK 8 vers WDK 8.1.

Scénario : vous avez créé un projet à l’aide de WDK 8 et Visual Studio 2012. Vous avez mis à niveau le projet/la solution à l’aide de WDK 8.1 et Visual Studio 2013, à l’aide de l’outil ProjectUpgradeTool. Pour conserver la configuration windows Vista, procédez comme suit : ProjectUpgradeTool.exe PathToProjectFolder -KeepObsoleteConfigs.

Vous ouvrez le projet dans WDK 8.1. Lorsque vous générez une cible Windows Vista Win32, le message d’erreur suivant peut s’afficher :

error MSB6004: The specified task executable location "C:\Program Files (x86)\Windows Kits\8.0\bin\x86\x86\CL.exe" is invalid.   C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets  347 5   KMDF Driver1

Lorsque vous générez une cible Windows Vista x64, vous pouvez voir les messages d’erreur suivants :

error TRK0002: Failed to execute command: ""C:\Program Files (x86)\Windows Kits\8.0\bin\x64\stampinf.exe" -d * -a amd64 -v * -k 1.11 -u 1.11.0 -f x64\VistaRelease\KMDFDriver1.inf". The operation identifier is not valid.  C:\Users\Administrator\Desktop\KMDF Driver1 - Copy\KMDF Driver1\TRACKER KMDF Driver1
error : Verification Error: Driver package has no driver version.    C:\Program Files (x86)\Windows Kits\8.0\build\WindowsDriver8.0.common.targets   1338    5   KMDF Driver1 Package

Solution de contournement : vous devez apporter deux modifications.

  1. Corrigez les fichiers WindowsDriver8.0.x64.props et WindowsDriver8.0.Win32.props.

    Vous devez apporter des corrections dans les expressions conditionnelles dans ces deux fichiers *.props. Les fichiers se trouvent dans le répertoire C :\Program Files (x86)\Windows Kits\8.0\build.

    Dans chaque fichier *.props, recherchez l’expression où ('$(VisualStudioVersion)' != '11.0'). Par exemple, la première instance se présente comme suit :

            <When  Condition="'$(VisualStudioVersion)' != '11.0'">
          <PropertyGroup>
            <CLToolPath Condition="'$(CLToolPath)' == ''">$(WDKContentRoot)bin\x86\x64</CLToolPath>
            <CLToolArchitecture>Native32Bit</CLToolArchitecture>
            <LinkToolPath Condition="'$(LinkToolPath)' == ''">$(WDKContentRoot)bin\x86\x64</LinkToolPath>
            <LinkToolArchitecture>Native32Bit</LinkToolArchitecture>
            <MIDLToolPath Condition="'$(MIDLToolPath)' == ''">$(WDKContentRoot)bin\x86</MIDLToolPath>
            <MIDLToolArchitecture>Native32Bit</MIDLToolArchitecture>
            <LibToolPath Condition="'$(LibToolPath)' == ''">$(WDKContentRoot)bin\x86</LibToolPath>
            <LibToolArchitecture>Native32Bit</LibToolArchitecture>
            <ExecutablePath>$(WDKContentRoot)bin\x86\x64;$(WDKContentRoot)bin\x86;$(WDKContentRoot)tools\pfd\bin\bin\AMD64;$(WDKContentRoot)tools\tracing\x64;$(ExecutablePath)</ExecutablePath>      
        </PropertyGroup>
        </When>
    

    Remplacez les valeurs non égales ( !=) par inférieures à (&lt;).

        <When  Condition="'$(VisualStudioVersion)' &lt;'11.0'">
    

    Recherchez l’instance suivante de l’expression où ('$(VisualStudioVersion)' != '11.0')

        <When Condition="('$(PlatformToolset)' == 'WindowsApplicationForDrivers8.0') and ('$(VisualStudioVersion)' != '11.0')">
    

    Et modifiez les valeurs non égales ( !=) à inférieures à (&lt;).

        <When Condition="('$(PlatformToolset)' == 'WindowsApplicationForDrivers8.0') and ('$(VisualStudioVersion)' &lt;'11.0')">
    

    Après avoir apporté les modifications, enregistrez les deux fichiers *.props.

  2. Corrigez le fichier projet du pilote.

    Ouvrez le fichier projet (*.vcxproj) pour votre pilote.

    Recherchez les configurations cibles Vista dans votre fichier projet (version et débogage). Par exemple :

       <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Vista Debug|Win32'">
        <TargetVersion>Vista</TargetVersion>
        <UseDebugLibraries>True</UseDebugLibraries>
        <PlatformToolset>WindowsKernelModeDriver8.0</PlatformToolset>
      </PropertyGroup>
    

    Ajoutez la propriété PackageDir à vos paramètres de configuration Windows Vista. Dans la plupart des cas, vous devez utiliser les valeurs par défaut : <PackageDir>$(OutDir)\$(Intdir)</PackageDir>.

       <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Vista Debug|Win32'">
        <TargetVersion>Vista</TargetVersion>
        <PackageDir>$(OutDir)\$(Intdir)</PackageDir>
        <UseDebugLibraries>True</UseDebugLibraries>
        <PlatformToolset>WindowsKernelModeDriver8.0</PlatformToolset>
      </PropertyGroup>
    

    Apportez la même modification à vos autres configurations.

        <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Vista Release|Win32'">
        <TargetVersion>Vista</TargetVersion>
        <PackageDir>$(OutDir)\$(Intdir)</PackageDir>
        <UseDebugLibraries>False</UseDebugLibraries>
        <PlatformToolset>WindowsKernelModeDriver8.0</PlatformToolset>
      </PropertyGroup>
    

    Après avoir apporté ces modifications et enregistré le fichier, vous pouvez ouvrir et générer le projet dans Visual Studio 2013. Le projet doit continuer à fonctionner avec Visual Studio 2012. Notez que même après ces modifications, vous devez toujours installer WDK 8 et Visual Studio 2012 sur l’ordinateur.

Construire un pilote

Environnement de build WDK et Visual Studio