Condividi tramite


ProjectUpgradeTool

Nota

Questo strumento non è più incluso in WDK. Puoi ancora trovarlo in WDK per Windows 10 versione 1607.

ProjectUpgradeTool accetta il progetto di Microsoft Visual Studio 2012 (*.vcxproj) e i file di soluzione (*.sln) creati con Windows Driver Kit (WDK) per Windows 8 e li aggiorna per funzionare con WDK per Windows 8.1 e Microsoft Visual Studio 2013.

Importante : ProjectUpgradeTool non modifica i file di origine. Lo strumento converte solo i file di progetto e soluzioni. Per impostazione predefinita, lo strumento salva una copia di backup dei file originali.

Per aggiornare un progetto o una soluzione WDK 8 a WDK 8.1

  1. Aprire una finestra del prompt dei comandi di Visual Studio.

  2. Digitare il comando ProjectUpgradeTool e specificare la directory radice (o padre) che contiene il progetto Windows Driver Kit (WDK) 8 file di progetto o soluzione da aggiornare a Windows Driver Kit (WDK) 8.1 per Windows 8.1. Ad esempio, il comando seguente aggiorna tutti i file nella directory C:\myDriver e nelle sottodirectory.

    ProjectUpgradeTool.exe  C:\myDriver
    
  3. Aprire i file di progetto o soluzione WDK 8.1 usando Visual Studio 2013. Lo strumento mantiene i nomi originali dei file. Le versioni precedenti vengono salvate con l'estensione con estensione backup. Nota Se vuoi essere in grado di compilare destinazioni per Windows Vista, usando Visual Studio 2013 e WDK 8.1, vedi Cosa fare se non riesci a compilare una destinazione Windows Vista dopo la migrazione di un progetto WDK 8 a WDK 8.1.

Sintassi di ProjectUpgradeTool

Lo strumento di aggiornamento del progetto si trova nella directory %WindowsSdkDir%\bin\x86\. Ad esempio, C:\Programmi (x86)\Windows Kits\8.1\bin\x86.

Il ProjectUpgradeTool.exe ha la sintassi seguente:

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

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

Specifica un nome per il file di log e specifica il livello di registrazione (vedere Dettaglio).

-ConsoleLog:<Verbosity>

Specifica un nome per il file di log della console e specifica il livello di registrazione (vedere Dettaglio).

Prolissità

I livelli di registrazione predefiniti per il file di log e la registrazione della console sono rispettivamente Verbose e Information . Verbosity è uno di System.Diagnostics.SourceLevels.

-NoBackup

Indica a ProjectUpgradeTool di non eseguire la copia di backup del progetto originale (.vcxproj) o delle soluzioni (.sln). Quando si seleziona questa opzione, i file di progetto e soluzione originali vengono sovrascritti e funzionano solo con WDK per Windows 8.1 e Visual Studio 2013.

-NoToolsetUpgrade

Specificare l'opzione -NoToolsetUpgrade se non si vuole usare il set di strumenti della piattaforma WDK 8.1 quando si specificano configurazioni di compilazione per le versioni di Windows precedenti a Windows 8.1. Quando si seleziona questa opzione, verranno compilate solo le configurazioni WinPreRel usando il WDK più recente.

-InPlaceUpgrade

Sostituisce ogni configurazione di compilazione esistente con la nuova configurazione winPreRel . Ciò impedisce la compilazione per le versioni precedenti di Windows.

-ForceUpgrade

Forza l'aggiornamento di ogni file di progetto (.vcxproj), anche se il progetto non soddisfa i requisiti di un progetto driver.

-KeepObsoleteConfigs

Mantiene le configurazioni di destinazione per i sistemi operativi che non sono più supportati da WDK ,ad esempio Windows Vista. Tuttavia, per compilare per queste destinazioni obsolete, è necessario avere Visual Studio 2012 e WDK 8 installato nel computer, oltre a WDK 8.1 e Visual Studio 2013. Si supponga, ad esempio, di voler aggiornare il progetto driver per usare WDK 8.1 per tutte le versioni di destinazione supportate (Windows 7, Windows 8 e Windows 8.1). E vuoi comunque usare lo stesso progetto driver per continuare la compilazione per Windows Vista. A tale scopo, aggiornare il file di progetto usando l'opzione -KeepObsoleteConfigs per mantenere la configurazione di destinazione di Windows Vista nel progetto. La configurazione di Windows Vista continuerà a usare il set di strumenti WindowsKernelModeDriver8.0 (disponibile in WDK 8), anche se si compila il progetto in Visual Studio 2013.

Commenti

Cosa fare se viene visualizzato l'errore MSB8020 (Set di strumenti della piattaforma = 'WindowsKernelModeDriver8.0') non è stato trovato

Se si tenta di aprire un progetto o una soluzione creata con WDK 8, è possibile che venga visualizzato il messaggio di errore seguente quando si tenta di compilare il progetto usando 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...".

Il set di strumenti della piattaforma in WDK 8 era WindowsKernelModeDriver8.0. Per correggere questo errore, eseguire ProjectUpgradeTool come descritto qui e aggiornare la soluzione WDK 8 per usare il set di strumenti disponibile in WDK 8.1

Cosa fare se non è possibile compilare una destinazione Windows Vista dopo la migrazione di un progetto WDK 8 a WDK 8.1

Problema: impossibile compilare una destinazione Windows Vista dopo la migrazione di un progetto WDK 8 a WDK 8.1.

Scenario: è stato creato un progetto usando WDK 8 e Visual Studio 2012. Il progetto/soluzione è stato aggiornato usando WDK 8.1 e Visual Studio 2013 usando lo strumento ProjectUpgradeTool. A tale scopo, usare il comando seguente per mantenere la configurazione di Windows Vista: ProjectUpgradeTool.exe PathToProjectFolder -KeepObsoleteConfigs.

Aprire il progetto in WDK 8.1. Quando si compila una destinazione Windows Vista Win32, è possibile che venga visualizzato il messaggio di errore seguente:

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

Quando si compila una destinazione Windows Vista x64, è possibile che vengano visualizzati i messaggi di errore seguenti:

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

Soluzione alternativa: è necessario apportare due modifiche.

  1. Correggere i file WindowsDriver8.0.x64.props e WindowsDriver8.0.Win32.props.

    È necessario apportare correzioni nelle espressioni condizionali in questi due file *.props. I file si trovano nella directory C:\Programmi (x86)\Windows Kits\8.0\build.

    In ogni file *.props individuare l'espressione in cui ('$(VisualStudioVersion)' != '11.0'). Ad esempio, la prima istanza sarà simile alla seguente:

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

    Modificare l'oggetto diverso da (!=) a minore di (&lt;).

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

    Individuare l'istanza successiva dell'espressione in cui ('$(VisualStudioVersion)' != '11.0')

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

    E modificare il valore diverso da (!=) a minore di (&lt;).

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

    Dopo aver apportato le modifiche, salvare entrambi i file *.props.

  2. Correggere il file di progetto per il driver.

    Aprire il file di progetto (*.vcxproj) per il driver.

    Individuare le configurazioni di destinazione Vista nel file di progetto (versione e debug). Ad esempio:

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

    Aggiungere la proprietà PackageDir alle impostazioni di configurazione di Windows Vista. Nella maggior parte dei casi, è consigliabile usare i valori predefiniti: <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>
    

    Apportare la stessa modifica per le altre configurazioni.

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

    Dopo aver apportato queste modifiche e aver salvato il file, è possibile aprire e compilare il progetto in Visual Studio 2013. Il progetto deve continuare a funzionare con Visual Studio 2012. Si noti che, anche dopo queste modifiche, è comunque necessario che NEL computer sia installato WDK 8 e Visual Studio 2012.

Creazione di un driver

WDK e ambiente di compilazione di Visual Studio