Compartir a través de


ProjectUpgradeTool

Nota

Esta herramienta ya no se incluye en el WDK. Todavía puede encontrarlo en el WDK para Windows 10, versión 1607.

ProjectUpgradeTool toma el proyecto de Microsoft Visual Studio 2012 (*.vcxproj) y los archivos de solución (*.sln) que se crearon con el Kit de controladores de Windows (WDK) para Windows 8 y los actualiza para trabajar con el WDK para Windows 8.1 y Microsoft Visual Studio 2013.

Importante ProjectUpgradeTool no cambia los archivos de origen. La herramienta solo convierte los archivos de proyecto y soluciones. De forma predeterminada, la herramienta guarda una copia de seguridad de los archivos originales.

Para actualizar un proyecto o solución WDK 8 a WDK 8.1

  1. Abra una ventana Símbolo del sistema de Visual Studio.

  2. Escriba el comando ProjectUpgradeTool y especifique el directorio raíz (o primario) que contiene el proyecto o los archivos de solución del Kit de controladores de Windows (WDK) 8 que desea actualizar al Kit de controladores de Windows (WDK) 8.1 para Windows 8.1. Por ejemplo, el siguiente comando actualiza todos los archivos del directorio y subdirectorios C:\myDriver.

    ProjectUpgradeTool.exe  C:\myDriver
    
  3. Abra los archivos de proyecto o solución de WDK 8.1 mediante Visual Studio 2013. La herramienta mantiene los nombres originales de los archivos. Las versiones anteriores se guardan con la extensión de nombre de archivo .backup. Nota Si quieres poder compilar destinos para Windows Vista, con Visual Studio 2013 y WDK 8.1, consulta Qué hacer si no puedes compilar un destino de Windows Vista después de migrar un proyecto WDK 8 a WDK 8.1.

Sintaxis de ProjectUpgradeTool

La herramienta de actualización del proyecto se encuentra en el directorio %WindowsSdkDir%\bin\x86\. Por ejemplo, C:\Archivos de programa (x86)\Windows Kits\8.1\bin\x86.

El ProjectUpgradeTool.exe tiene la siguiente sintaxis:

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

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

Especifica un nombre para el archivo de registro y especifica el nivel de registro (consulte Verbosity).

-ConsoleLog:<Verbosity>

Especifica un nombre para el archivo de registro de la consola y especifica el nivel de registro (consulte Verbosity).

Nivel de detalle

Los niveles de registro predeterminados para el archivo de registro y el registro de consola son detallados e información , respectivamente. Verbosity es uno de System.Diagnostics.SourceLevels.

-NoBackup

Indica a ProjectUpgradeTool que no realice una copia de seguridad del proyecto original (.vcxproj) o soluciones (.sln). Al seleccionar esta opción, los archivos de proyecto y solución originales se sobrescriben y solo funcionarán con el WDK para Windows 8.1 y Visual Studio 2013.

-NoToolsetUpgrade

Especifique la opción -NoToolsetUpgrade si no desea usar el conjunto de herramientas de la plataforma WDK 8.1 al especificar configuraciones de compilación para versiones de Windows anteriores a Windows 8.1. Al seleccionar esta opción, solo se compilarán las configuraciones de WinPreRel con el WDK más reciente.

-InPlaceUpgrade

Reemplaza todas las configuraciones de compilación existentes por la nueva configuración de WinPreRel . Esto impide compilar para versiones anteriores de Windows.

-ForceUpgrade

Obliga a actualizar todos los archivos de proyecto (.vcxproj), incluso si el proyecto no cumple los requisitos de un proyecto de controlador.

-KeepObsoleteConfigs

Conserva las configuraciones de destino de los sistemas operativos que ya no son compatibles con el WDK (por ejemplo, Windows Vista). Sin embargo, para compilar para estos destinos obsoletos, debe tener Visual Studio 2012 y WDK 8 instalado en el equipo, además de WDK 8.1 y Visual Studio 2013. Por ejemplo, supongamos que quiere actualizar el proyecto de controlador para usar WDK 8.1 para todas las versiones de destino admitidas (Windows 7, Windows 8 y Windows 8.1). Y aún quieres usar el mismo proyecto de controlador para seguir compilando para Windows Vista. Para ello, actualice el archivo de proyecto mediante la opción -KeepObsoleteConfigs para mantener la configuración de destino de Windows Vista en el proyecto. La configuración de Windows Vista seguirá usando el conjunto de herramientas WindowsKernelModeDriver8.0 (disponible en WDK 8), aunque compile el proyecto en Visual Studio 2013.

Comentarios

Qué hacer si ve el error MSB8020 (No se encuentra el conjunto de herramientas de la plataforma = 'WindowsKernelModeDriver8.0')

Si intenta abrir un proyecto o solución creado con WDK 8, es posible que vea el siguiente mensaje de error al intentar compilar el proyecto mediante 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...".

El conjunto de herramientas de la plataforma en WDK 8 era WindowsKernelModeDriver8.0. Para corregir este error, ejecute ProjectUpgradeTool como se describe aquí y actualice la solución WDK 8 para usar el conjunto de herramientas disponible en WDK 8.1.

Qué hacer si no puede compilar un destino de Windows Vista después de migrar un proyecto de WDK 8 a WDK 8.1

Problema: No se puede compilar un destino de Windows Vista después de migrar un proyecto de WDK 8 a WDK 8.1.

Escenario: Ha creado un proyecto con WDK 8 y Visual Studio 2012. Ha actualizado el proyecto o la solución mediante WDK 8.1 y Visual Studio 2013, mediante la herramienta ProjectUpgradeTool. Para ello, use el siguiente comando para conservar la configuración de Windows Vista: ProjectUpgradeTool.exePathToProjectFolder-KeepObsoleteConfigs.

Abra el proyecto en WDK 8.1. Al compilar un destino de Windows Vista win32, es posible que vea el siguiente mensaje de error:

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

Al compilar un destino de Windows Vista x64, es posible que vea los siguientes mensajes de error:

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

Solución: Debe realizar dos cambios.

  1. Corrija los archivos WindowsDriver8.0.x64.props y WindowsDriver8.0.Win32.props.

    Debe realizar correcciones en expresiones condicionales en estos dos archivos *.props. Los archivos se encuentran en el directorio C:\Archivos de programa (x86)\Windows Kits\8.0\build.

    En cada archivo *.props, busque la expresión donde ('$(VisualStudioVersion)' != '11.0'). Por ejemplo, la primera instancia tendrá un aspecto similar al siguiente:

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

    Cambie el valor de no es igual a (!=) a menor que (&lt;).

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

    Busque la siguiente instancia de la expresión donde ('$(VisualStudioVersion)' != '11.0')

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

    Y cambie el valor de no es igual a (!=) a menor que (&lt;).

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

    Después de realizar los cambios, guarde ambos archivos *.props.

  2. Corrija el archivo de proyecto del controlador.

    Abra el archivo del proyecto (*.vcxproj) para el controlador.

    Busque las configuraciones de destino de Vista en el archivo del proyecto (versión y depuración). Por ejemplo:

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

    Agregue la propiedad PackageDir a los valores de configuración de Windows Vista. En la mayoría de los casos, debe usar los valores predeterminados: <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>
    

    Realice el mismo cambio para las demás configuraciones.

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

    Después de realizar estos cambios y guardar el archivo, puede abrir y compilar el proyecto en Visual Studio 2013. El proyecto debe seguir funcionando con Visual Studio 2012. Tenga en cuenta que, incluso después de estos cambios, debe tener WDK 8 y Visual Studio 2012 instalados en el equipo.

Creación de un controlador

WDK y el entorno de compilación de Visual Studio