ProjectUpgradeTool
Nota:
Esta herramienta ya no se incluye en el WDK. Todavía puedes encontrarlo en WDK para Windows 10, versión 1607.
ProjectUpgradeTool toma el proyecto de Microsoft Visual Studio 2012 (*.vcxproj) y los archivos de solución (*.sln) creados con el Kit de controladores de Windows (WDK) para Windows 8 y los actualiza para trabajar con 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 de WDK 8 a WDK 8.1
Abra una ventana Símbolo del sistema de Visual Studio.
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
Abra los archivos de solución o proyecto 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 de 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 sintaxis siguiente:
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 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 Detallado e Información , respectivamente. Verbosity es una 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 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 para los sistemas operativos que ya no son compatibles con 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 compatibles (Windows 7, Windows 8 y Windows 8.1). Y todavía 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), incluso si compila el proyecto en Visual Studio 2013. |
Comentarios
- ¿Qué hacer si ve error MSB8020 (No se encuentra el conjunto de herramientas de plataforma = 'WindowsKernelModeDriver8.0')
- Qué hacer si no puede compilar un destino de Windows Vista después de migrar un proyecto de WDK 8 a WDK 8.1
¿Qué hacer si ve error MSB8020 (No se encuentra el conjunto de herramientas de plataforma = 'WindowsKernelModeDriver8.0')
Si intenta abrir un proyecto o solución que se creó 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.exe PathToProjectFolder -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 alternativa: debe realizar dos cambios.
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 (
<
).<When Condition="'$(VisualStudioVersion)' <'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 no igual a (!=) a menor que (
<
).<When Condition="('$(PlatformToolset)' == 'WindowsApplicationForDrivers8.0') and ('$(VisualStudioVersion)' <'11.0')">
Después de realizar los cambios, guarde ambos archivos *.props.
Corrija el archivo del proyecto para el 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.