Freigeben über


ProjectUpgradeTool

Hinweis

Dieses Tool ist nicht mehr im WDK enthalten. Sie finden es weiterhin im WDK für Windows 10, Version 1607.

Das ProjectUpgradeTool übernimmt Microsoft Visual Studio 2012-Projekt (*.vcxproj) und Lösungsdateien (*.sln), die mit dem Windows Driver Kit (WDK) für Windows 8 erstellt wurden, und aktualisiert sie auf die Arbeit mit WDK für Windows 8.1 und Microsoft Visual Studio 2013.

Wichtig : Das ProjectUpgradeTool ändert ihre Quelldateien nicht. Das Tool konvertiert nur die Projekt- und Lösungsdateien. Standardmäßig speichert das Tool eine Sicherungskopie der originalen Dateien.

So aktualisieren Sie ein WDK 8-Projekt oder eine Lösung auf WDK 8.1

  1. Öffnen Sie ein Visual Studio-Eingabeaufforderungsfenster.

  2. Geben Sie den Befehl ProjectUpgradeTool ein, und geben Sie das Stammverzeichnis (oder das übergeordnete Verzeichnis) an, das das Windows Driver Kit (WDK) 8-Projekt oder die Projektmappendateien enthält, die Sie auf das Windows Driver Kit (WDK) 8.1 für Windows 8.1 aktualisieren möchten. Mit dem folgenden Befehl werden beispielsweise alle Dateien in C:\myDriver-Verzeichnis und Unterverzeichnissen aktualisiert.

    ProjectUpgradeTool.exe  C:\myDriver
    
  3. Öffnen Sie die WDK 8.1-Projekt- oder Projektmappendateien mit Visual Studio 2013. Das Tool behält die ursprünglichen Namen der Dateien bei. Die vorherigen Versionen werden mit der Dateinamenerweiterung .backup gespeichert. Hinweis : Wenn Sie Ziele für Windows Vista mit Visual Studio 2013 und WDK 8.1 erstellen möchten, lesen Sie die Vorgehensweise, wenn Sie nach der Migration eines WDK 8-Projekts zu WDK 8.1 kein Windows Vista-Ziel erstellen können.

ProjectUpgradeTool-Syntax

Das Projektupgradetool befindet sich im Verzeichnis %WindowsSdkDir%\bin\x86\. Beispiel: C:\Programme (x86)\Windows Kits\8.1\bin\x86.

Die ProjectUpgradeTool.exe weist die folgende Syntax auf:

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

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

Gibt einen Namen für die Protokolldatei an und gibt die Protokollierungsebene an (siehe Ausführlichkeit).

-ConsoleLog:<Verbosity>

Gibt einen Namen für die Konsolenprotokolldatei an und gibt die Protokollierungsebene an (siehe Ausführlichkeit).

Verbosity

Die Standardprotokollierungsebenen für protokolldatei- und Konsolenprotokollierung sind ausführlich und informationen . Verbosity ist eine der System.Diagnostics.SourceLevels.

-NoBackup

Weist das ProjectUpgradeTool an, keine Sicherungskopie des ursprünglichen Projekts (.vcxproj) oder Lösungen (.sln) zu erstellen. Wenn Sie diese Option auswählen, werden die ursprünglichen Projekt- und Lösungsdateien überschrieben und funktionieren nur mit dem WDK für Windows 8.1 und Visual Studio 2013.

-NoToolsetUpgrade

Geben Sie die Option -NoToolsetUpgrade an, wenn Sie das WDK 8.1-Plattformtoolset nicht verwenden möchten, wenn Sie Buildkonfigurationen für Windows-Versionen vor Windows 8.1 angeben. Wenn Sie diese Option auswählen, werden nur die WinPreRel-Konfigurationen mit dem neuesten WDK erstellt.

-InPlaceUpgrade

Ersetzt jede vorhandene Buildkonfiguration durch die neue WinPreRel-Konfiguration . Dadurch wird verhindert, dass Sie für frühere Versionen von Windows erstellen.

-ForceUpgrade

Erzwingt, dass jede Projektdatei (.vcxproj) aktualisiert wird, auch wenn das Projekt nicht den Anforderungen eines Treiberprojekts entspricht.

-KeepObsoleteConfigs

Behält Zielkonfigurationen für Betriebssysteme bei, die vom WDK nicht mehr unterstützt werden (z. B. Windows Vista). Um jedoch für diese veralteten Ziele zu erstellen, müssen Visual Studio 2012 und der WDK 8 auf dem Computer zusätzlich zu WDK 8.1 und Visual Studio 2013 installiert sein. Angenommen, Sie möchten das Treiberprojekt aktualisieren, um wdK 8.1 für alle unterstützten Zielversionen (Windows 7, Windows 8 und Windows 8.1) zu verwenden. Und Sie möchten weiterhin dasselbe Treiberprojekt verwenden, um die Erstellung für Windows Vista fortzusetzen. Dazu aktualisieren Sie die Projektdatei mithilfe der Option "-KeepObsoleteConfigs ", um die Windows Vista-Zielkonfiguration im Projekt beizubehalten. Die Windows Vista-Konfiguration verwendet weiterhin den Toolsatz "WindowsKernelModeDriver8.0 " (verfügbar in WDK 8), auch wenn Sie das Projekt in Visual Studio 2013 erstellen.

Kommentare

Was zu tun ist, wenn Fehler MSB8020 (Platform Toolset = 'WindowsKernelModeDriver8.0') angezeigt wird, kann nicht gefunden werden.

Wenn Sie versuchen, ein Projekt oder eine Projektmappe zu öffnen, das mit WDK 8 erstellt wurde, wird möglicherweise die folgende Fehlermeldung angezeigt, wenn Sie versuchen, das Projekt mit WDK 8.1 zu erstellen.

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

Das Plattformtoolset im WDK 8 war WindowsKernelModeDriver8.0. Um diesen Fehler zu beheben, führen Sie das ProjectUpgradeTool wie hier beschrieben aus, und aktualisieren Sie Ihre WDK 8-Lösung, um das in WDK 8.1 verfügbare Toolset zu verwenden.

Was zu tun ist, wenn Sie nach der Migration eines WDK 8-Projekts zu WDK 8.1 kein Windows Vista-Ziel erstellen können

Problem: Ein Windows Vista-Ziel kann nach der Migration eines WDK 8-Projekts zu WDK 8.1 nicht erstellt werden.

Szenario: Sie haben ein Projekt mit WDK 8 und Visual Studio 2012 erstellt. Sie haben das Projekt/die Projektmappe mit WDK 8.1 und Visual Studio 2013 mit dem ProjectUpgradeTool-Tool aktualisiert. Dazu verwenden Sie den folgenden Befehl, um die Windows Vista-Konfiguration beizubehalten: ProjectUpgradeTool.exe PathToProjectFolder -KeepObsoleteConfigs.

Sie öffnen das Projekt in WDK 8.1. Wenn Sie ein Win32 Windows Vista-Ziel erstellen, wird möglicherweise die folgende Fehlermeldung angezeigt:

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

Wenn Sie ein x64 Windows Vista-Ziel erstellen, werden möglicherweise die folgenden Fehlermeldungen angezeigt:

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

Problemumgehung: Sie müssen zwei Änderungen vornehmen.

  1. Korrigieren Sie die Dateien "WindowsDriver8.0.x64.props" und "WindowsDriver8.0.Win32.props".

    Sie müssen Korrekturen in bedingten Ausdrücken in diesen beiden *.props-Dateien vornehmen. Die Dateien befinden sich im Verzeichnis "C:\Programme (x86)\Windows Kits\8.0\build".

    Suchen Sie in jeder Datei *.props den Ausdruck an der Stelle ('$(VisualStudioVersion)' != '11.0'). Die erste Instanz sieht beispielsweise wie folgt aus:

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

    Ändern Sie die ungleich (!=) in kleiner als (&lt;).

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

    Suchen der nächsten Instanz des Ausdrucks, in dem ('$(VisualStudioVersion)' != '11.0')

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

    Und ändern Sie die nicht gleich (!=) in kleiner als (&lt;).

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

    Nachdem Sie die Änderungen vorgenommen haben, speichern Sie beide *.props-Dateien.

  2. Korrigieren Sie die Projektdatei für den Treiber.

    Öffnen Sie die Projektdatei (*.vcxproj) für Ihren Treiber.

    Suchen Sie die Vista-Zielkonfigurationen in Ihrer Projektdatei (Release und Debug). Zum Beispiel:

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

    Fügen Sie die PackageDir-Eigenschaft zu Ihren Windows Vista-Konfigurationseinstellungen hinzu. In den meisten Fällen sollten Sie die Standardwerte verwenden: <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>
    

    Nehmen Sie dieselbe Änderung für Ihre anderen Konfigurationen vor.

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

    Nachdem Sie diese Änderungen vorgenommen und die Datei gespeichert haben, können Sie das Projekt in Visual Studio 2013 öffnen und erstellen. Das Projekt sollte weiterhin mit Visual Studio 2012 arbeiten. Beachten Sie, dass auch nach diesen Änderungen weiterhin WDK 8 und Visual Studio 2012 auf dem Computer installiert sein müssen.

Einen Treiber bauen

WDK- und Visual Studio-Buildumgebung