Поделиться через


ProjectUpgradeTool

Примечание.

Это средство больше не входит в состав WDK. Его можно найти в WDK для Windows 10 версии 1607.

ProjectUpgradeTool принимает проект Microsoft Visual Studio 2012 (*.vcxproj) и файлы решений (*.sln), созданные с помощью комплекта драйверов Windows (WDK) для Windows 8, и обновляет их для работы с WDK для Windows 8.1 и Microsoft Visual Studio 2013.

Важное значение ProjectUpgradeTool не изменяет исходные файлы. Средство преобразует только файлы проекта и решений. По умолчанию средство сохраняет резервную копию исходных файлов.

Обновление проекта или решения WDK 8 до WDK 8.1

  1. Откройте окно командной строки Visual Studio.

  2. Введите команду ProjectUpgradeTool и укажите корневой каталог (или родительский), содержащий пакет драйверов Windows (WDK) 8 или файлы решений, которые необходимо обновить до пакета драйверов Windows (WDK) 8.1 для Windows 8.1 для Windows 8.1. Например, следующая команда обновляет все файлы в каталоге C:\myDriver и подкаталогах.

    ProjectUpgradeTool.exe  C:\myDriver
    
  3. Откройте проект или файлы решения WDK 8.1 с помощью Visual Studio 2013. Средство сохраняет исходные имена файлов. Предыдущие версии сохраняются с расширением имени файла .backup. Примечание. Если вы хотите иметь возможность создавать целевые объекты для Windows Vista с помощью Visual Studio 2013 и WDK 8.1, см. статью "Что делать, если вы не можете создать целевой объект Windows Vista после переноса проекта WDK 8 в WDK 8.1".

Синтаксис ProjectUpgradeTool

Средство обновления проекта находится в каталоге %WindowsSdkDir%\bin\x86\. Например, C:\Program Files (x86)\Windows Kits\8.1\bin\x86.

ProjectUpgradeTool.exe имеет следующий синтаксис:

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

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

Задает имя файла журнала и задает уровень ведения журнала (см. подробные сведения).

-ConsoleLog:<Verbosity>

Задает имя файла журнала консоли и задает уровень ведения журнала (см. подробные сведения).

Многословие

Уровни ведения журнала по умолчанию для файлов журналов и ведения журнала консоли — подробные и подробные сведения соответственно. Подробное описание является одним из System.Diagnostics.SourceLevels.

-NoBackup

Сообщает ProjectUpgradeTool не создавать резервную копию исходного проекта (.vcxproj) или решений (.sln). При выборе этого параметра исходные файлы проекта и решения перезаписываются и будут работать только с WDK для Windows 8.1 и Visual Studio 2013.

-NoToolsetUpgrade

Укажите параметр -NoToolsetUpgrade, если вы не хотите использовать набор инструментов платформы WDK 8.1 при указании конфигураций сборки для версий Windows до Windows 8.1. При выборе этого параметра будут созданы только конфигурации WinPreRel с помощью последней версии WDK.

-InPlaceUpgrade

Заменяет каждую существующую конфигурацию сборки новой конфигурацией WinPreRel . Это предотвращает сборку для предыдущих версий Windows.

-ForceUpgrade

Принудительно обновляет каждый файл проекта (.vcxproj), даже если проект не соответствует требованиям проекта драйвера.

-KeepObsoleteConfigs

Сохраняет целевые конфигурации для операционных систем, которые больше не поддерживаются WDK (например, Windows Vista). Однако для сборки для этих устаревших целевых объектов необходимо установить Visual Studio 2012 и WDK 8 на компьютере, помимо WDK 8.1 и Visual Studio 2013. Например, предположим, что вы хотите обновить проект драйвера, чтобы использовать WDK 8.1 для всех поддерживаемых целевых версий (Windows 7, Windows 8 и Windows 8.1). И вы по-прежнему хотите использовать тот же проект драйвера для продолжения сборки для Windows Vista. Для этого обновите файл проекта с помощью параметра -KeepObsoleteConfigs , чтобы сохранить целевую конфигурацию Windows Vista в проекте. Конфигурация Windows Vista будет продолжать использовать набор инструментов WindowsKernelModeDriver8.0 (доступно в WDK 8), даже если вы создаете проект в Visual Studio 2013.

Комментарии

Что делать, если не удается найти сообщение об ошибке MSB8020 (набор инструментов платформы = "WindowsKernelModeDriver8.0")

Если вы пытаетесь открыть проект или решение, созданное с помощью WDK 8, при попытке создать проект с помощью 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...".

Набор инструментов платформы в WDK 8 был WindowsKernelModeDriver8.0. Чтобы устранить эту ошибку, запустите ProjectUpgradeTool, как описано здесь, и обновите решение WDK 8, чтобы использовать набор инструментов, доступный в WDK 8.1

Что делать, если вы не можете создать целевой объект Windows Vista после переноса проекта WDK 8 в WDK 8.1

Проблема. Не удалось создать целевой объект Windows Vista после переноса проекта WDK 8 в WDK 8.1.

Сценарий. Вы создали проект с помощью WDK 8 и Visual Studio 2012. Вы обновили проект или решение с помощью WDK 8.1 и Visual Studio 2013 с помощью средства ProjectUpgradeTool. Для сохранения конфигурации Windows Vista выполните следующую команду: ProjectUpgradeTool.exe PathToProjectFolder -KeepObsoleteConfigs.

Проект открывается в WDK 8.1. При сборке целевого объекта Win32 Windows Vista может появиться следующее сообщение об ошибке:

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

При сборке целевого объекта Windows Vista для Windows Vista могут появиться следующие сообщения об ошибках:

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

Обходное решение. Необходимо внести два изменения.

  1. Исправьте файлы WindowsDriver8.0.x64.props и WindowsDriver8.0.Win32.props.

    Необходимо внести исправления в условные выражения в этих двух файлах *.props. Файлы находятся в каталоге C:\Program Files (x86)\Windows Kits\8.0\build.

    В каждом файле *.props найдите выражение, где ('$(VisualStudioVersion)' != '11.0'). Например, первый экземпляр будет выглядеть следующим образом:

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

    Измените значение не равно (!=) на меньше (&lt;).

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

    Найдите следующий экземпляр выражения, где ('$(VisualStudioVersion)' != '11.0')

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

    И измените значение не равно (!=) на меньше (&lt;).

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

    После внесения изменений сохраните оба файла *.props.

  2. Исправьте файл проекта для драйвера.

    Откройте файл проекта (*.vcxproj) для драйвера.

    Найдите целевые конфигурации Vista в файле проекта (выпуск и отладка). Например:

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

    Добавьте свойство PackageDir в параметры конфигурации Windows Vista. В большинстве случаев следует использовать значения по умолчанию: <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>
    

    Внесите те же изменения для других конфигураций.

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

    После внесения этих изменений и сохранения файла можно открыть и создать проект в Visual Studio 2013. Проект должен продолжать работать с Visual Studio 2012. Обратите внимание, что даже после этих изменений на компьютере необходимо установить WDK 8 и Visual Studio 2012.

Создание драйвера

Среда сборки WDK и Visual Studio