Partilhar via


FerramentaDeAtualizaçãoDeProjeto

Observação

Essa ferramenta não está mais incluída no WDK. Você ainda pode encontrá-lo no WDK para Windows 10, versão 1607.

O ProjectUpgradeTool pega o projeto do Microsoft Visual Studio 2012 (*.vcxproj) e os arquivos de solução (*.sln) que foram criados com o Kit de Driver do Windows (WDK) para Windows 8 e os atualiza para funcionar com o WDK para Windows 8.1 e o Microsoft Visual Studio 2013.

Importante O ProjectUpgradeTool não altera seus arquivos de origem. A ferramenta apenas converte os arquivos de projeto e soluções. Por padrão, a ferramenta salva uma cópia de backup dos arquivos originais.

Para atualizar um projeto ou solução WDK 8 para WDK 8.1

  1. Abra uma janela do prompt de comando do Visual Studio.

  2. Digite o comando ProjectUpgradeTool e especifique o diretório raiz (ou pai) que contém os arquivos de projeto ou solução do Windows Driver Kit (WDK) 8 que você deseja atualizar para o Windows Driver Kit (WDK) 8.1 para Windows 8.1. Por exemplo, o comando a seguir atualiza todos os arquivos no diretório C:\myDriver e subdiretórios.

    ProjectUpgradeTool.exe  C:\myDriver
    
  3. Abra os arquivos de projeto ou solução do WDK 8.1 usando o Visual Studio 2013. A ferramenta mantém os nomes originais dos arquivos. As versões anteriores são salvas com a extensão de nome de arquivo .backup. Observação Se você quiser criar destinos para o Windows Vista, usando o Visual Studio 2013 e o WDK 8.1, consulte O que fazer se não conseguir criar um destino do Windows Vista depois de migrar um projeto do WDK 8 para o WDK 8.1.

Sintaxe ProjectUpgradeTool

A ferramenta de atualização do projeto está localizada no diretório %WindowsSdkDir%\bin\x86\. Por exemplo, C:\Program Files (x86)\Windows Kits\8.1\bin\x86.

O ProjectUpgradeTool.exe tem a seguinte sintaxe:

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

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

Especifica um nome para o ficheiro de log e determina o nível de registo (consulte Verbosity).

-ConsoleLog:<Verbosidade>

Especifica um nome para o ficheiro de log do Console e especifica o nível de registo (consulte Verbosity).

Verbosidade

Os níveis de log padrão para o arquivo de log e o log do console são Verboso e Informação, respectivamente. Verbosity é um dos System.Diagnostics.SourceLevels.

-NoBackup

Diz ao ProjectUpgradeTool para não fazer cópia de backup do projeto original (.vcxproj) ou soluções (.sln). Quando você seleciona essa opção, os arquivos de projeto e solução originais são substituídos e só funcionarão com o WDK para Windows 8.1 e Visual Studio 2013.

-NoToolsetUpgrade

Especifique a opção -NoToolsetUpgrade se não quiser usar o conjunto de ferramentas da plataforma WDK 8.1 ao especificar configurações de compilação para versões do Windows anteriores ao Windows 8.1. Quando você seleciona essa opção, somente as configurações do WinPreRel serão criadas usando o WDK mais recente.

-InPlaceUpgrade

Substitui todas as configurações de compilação existentes pela nova configuração do WinPreRel . Isso impede que você crie para versões anteriores do Windows.

-ForceUpgrade

Força todos os arquivos de projeto (.vcxproj) a serem atualizados, mesmo que o projeto não atenda aos requisitos de um projeto de driver.

-KeepObsoleteConfigs

Retém configurações de destino para sistemas operacionais que não são mais suportados pelo WDK (por exemplo, Windows Vista). No entanto, para criar para esses destinos obsoletos, você precisa ter o Visual Studio 2012 e o WDK 8 instalados no computador, além do WDK 8.1 e do Visual Studio 2013. Por exemplo, suponha que você queira atualizar o projeto de driver para usar o WDK 8.1 para todas as versões de destino suportadas (Windows 7, Windows 8 e Windows 8.1). E você ainda deseja usar o mesmo projeto de driver para continuar a criação para o Windows Vista. Para fazer isso, atualize o arquivo de projeto usando a opção -KeepObsoleteConfigs para manter a configuração de destino do Windows Vista no projeto. A configuração do Windows Vista continuará a usar o conjunto de ferramentas WindowsKernelModeDriver8.0 (disponível no WDK 8), mesmo se você compilar o projeto no Visual Studio 2013.

Comentários

O que fazer se vir o erro MSB8020 (Platform Toolset = 'WindowsKernelModeDriver8.0') não puder ser encontrado

Se você tentar abrir um projeto ou solução que foi criada com o WDK 8, poderá ver a seguinte mensagem de erro ao tentar criar o projeto usando o 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...".

O conjunto de ferramentas de plataforma no WDK 8 era WindowsKernelModeDriver8.0. Para corrigir esse erro, execute ProjectUpgradeTool conforme descrito aqui e atualize sua solução WDK 8 para usar o conjunto de ferramentas disponível no WDK 8.1

O que fazer se você não conseguir criar um destino do Windows Vista depois de migrar um projeto do WDK 8 para o WDK 8.1

Questão: Não é possível criar um destino do Windows Vista após a migração de um projeto do WDK 8 para o WDK 8.1.

Cenário: Você criou um projeto usando o WDK 8 e o Visual Studio 2012. Você atualizou o projeto/solução usando o WDK 8.1 e o Visual Studio 2013, usando a ferramenta ProjectUpgradeTool. Faça isso usando o seguinte comando para preservar a configuração do Windows Vista: ProjectUpgradeTool.exePathToProjectFolder-KeepObsoleteConfigs.

Abra o projeto no WDK 8.1. Quando você cria um destino Win32 Windows Vista, você verá a seguinte mensagem de erro:

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 cria um destino x64 do Windows Vista, poderá ver as seguintes mensagens de erro:

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

Solução alternativa: Você precisa fazer duas alterações.

  1. Corrija os ficheiros WindowsDriver8.0.x64.props e WindowsDriver8.0.Win32.props.

    Você precisa fazer correções em expressões condicionais nesses dois arquivos *.props. Os arquivos estão localizados no diretório C:\Program Files (x86)\Windows Kits\8.0\build.

    Em cada arquivo *.props, localize a expressão onde ('$(VisualStudioVersion)' != '11.0'). Por exemplo, a primeira instância terá a seguinte aparência:

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

    Altere o não igual (!=) para menor que (&lt;).

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

    Localize a próxima instância da expressão onde ('$(VisualStudioVersion)' != '11.0')

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

    Altere o não igual (!=) para menor que (&lt;).

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

    Depois de fazer as alterações, salve os dois arquivos *.props.

  2. Corrija o arquivo de projeto para o driver.

    Abra o arquivo de projeto (*.vcxproj) para seu driver.

    Localize as configurações de destino do Vista em seu arquivo de projeto (versão e depuração). Por exemplo:

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

    Adicione a propriedade PackageDir às suas definições de configuração do Windows Vista. Na maioria dos casos, você deve usar os valores padrão: <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>
    

    Faça a mesma alteração para suas outras configurações.

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

    Depois de fazer essas alterações e salvar o arquivo, você pode abrir e compilar o projeto no Visual Studio 2013. O projeto deve continuar a trabalhar com o Visual Studio 2012. Observe que, mesmo após essas alterações, você ainda precisa ter o WDK 8 e o Visual Studio 2012 instalados no computador.

Construindo um controlador

ambiente de compilação do WDK e do Visual Studio