ProjectUpgradeTool

Note

このツールは WDK に含まれません。 WDK for Windows 10 バージョン 1607 でも見つけることができます。

ProjectUpgradeTool は、Windows 8 用 Windows ドライバー キット (WDK) で作成された Microsoft Visual Studio 2012 プロジェクト ファイル(*.vcxproj) およびソリューション ファイル (*.sln) を取得し、それらを Windows 8.1 および Microsoft Visual Studio 2013 用 WDK で動作するようにアップグレードします。

重要: ProjectUpgradeTool はソース ファイルを変更しません。 このツールは、プロジェクトファイルとソリューションファイルのみを変換します。 既定では、ツールは元のファイルのバックアップ コピーを保存します。

WDK 8 プロジェクトまたはソリューションを WDK 8.1 にアップグレードするには

  1. Visual Studio のコマンド プロンプト ウィンドウを開きます。

  2. コマンド ProjectUpgradeTool を入力し、Windows 8.1 用の Windows Driver Kit (WDK) 8.1 にアップグレードするWindows Driver Kit (WDK) 8 プロジェクトまたはソリューション ファイルを含むルート (または親) ディレクトリを指定します。 たとえば、次のコマンドは、C:\myDriver ディレクトリとサブディレクトリ内のすべてのファイルをアップグレードします。

    ProjectUpgradeTool.exe  C:\myDriver
    
  3. Visual Studio 2013 を使用して WDK 8.1 プロジェクトまたはソリューション ファイルを開きます。 このツールは、ファイルの元の名前を保持します。 以前のバージョンは、.backup ファイル名拡張子と共に保存されます。 注: Visual Studio 2013 と WDK 8.1 を使用して Windows Vista のターゲットをビルドできるようにする場合は 、「WDK 8 プロジェクトを WDK 8.1に移行した後に Windows Vista ターゲットをビルドできない場合の操作」を参照してください。

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

ログ ファイルの名前を指定し、ログのレベルを指定します (「Verbosity」を参照)。

-ConsoleLog:<Verbosity>

コンソール ログ ファイルの名前を指定し、ログのレベルを指定します (「Verbosity」を参照)。

Verbosity

ログ ファイルとコンソール ログの既定のログ記録レベルは、それぞれ、VerboseInformation です。 Verbosity は、System.Diagnostics.SourceLevels の 1 つです。

-NoBackup

元のプロジェクト (.vcxproj) またはソリューション (.sln) のバックアップ コピーを作成しないように ProjectUpgradeTool に指示します。 このオプションを選択すると、元のプロジェクト ファイルとソリューション ファイルが上書きされ、WDK for Windows 8.1 および Visual Studio 2013 でのみ動作します。

-NoToolsetUpgrade

Windows 8.1 以前のバージョンの Windows のビルド構成を指定する際に WDK 8.1 プラットフォーム ツールセットを使用しない場合は 、-NoToolsetUpgrade オプションを指定します。 このオプションを選択すると、最新のWDK を使用して WinPreRel 構成のみがビルドされます。

-InPlaceUpgrade

既存のすべてのビルド構成を新しい WinPreRel 構成に置き換えます。 これにより、以前のバージョンの Windows 用にビルドできなくなります。

-ForceUpgrade

プロジェクトがドライバー プロジェクトの要件を満たしていない場合でも、すべてのプロジェクト ファイル (.vcxproj) を強制的にアップグレードします。

-KeepObsoleteConfigs

WDK でサポートされなくなったオペレーティング システム (Windows Vista など) のターゲット構成を保持します。 ただし、これらの古いターゲット用にビルドするには、WDK 8.1 と Visual Studio 2013 に加えて、Visual Studio 2012 と WDK 8 をコンピューターにインストールする必要があります。 たとえば、サポートされているすべてのターゲット バージョン (Windows 7、Windows 8、Windows 8.1) に WDK 8.1 を使用するようにドライバー プロジェクトをアップグレードする場合を想定します。 また、同じドライバー プロジェクトを使用して、Windows Vista のビルドを続行する必要があるとします。 これを行うには、-KeepObsoleteConfigs オプションを使用してプロジェクト ファイルをアップグレードし、Windows Vista ターゲット構成をプロジェクトに保持します。 Windows Vista 構成では、Visual Studio 2013 でプロジェクトをビルドした場合でも、 WindowsKernelModeDriver8.0 ツール セット (WDK 8 で使用可能) が引き続き使用されます。

コメント

エラー MSB8020 (Platform Toolset = '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.1 で使用可能なツールセットを使用するように WDK 8 ソリューションをアップグレードします。

WDK 8 プロジェクトを WDK 8.1 に移行した後に Windows Vista ターゲットをビルドできない場合の操作

問題: WDK 8 プロジェクトを WDK 8.1 に移行した後、Windows Vista ターゲットをビルドできません。

シナリオ: WDK 8 と Visual Studio 2012 を使用してプロジェクトを作成しました。 ProjectUpgradeTool ツールを使用して、WDK 8.1 と Visual Studio 2013 を使用してプロジェクト/ソリューションをアップグレードしました。 これを行うには、 ProjectUpgradeTool.exePathToProjectFolder-KeepObsoleteConfigsを使用してWindows Vista の構成を保持します。

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

x64 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

回避策: 2 つの変更を行う必要があります。

  1. WindowsDriver8.0.x64.props ファイルと WindowsDriver8.0.Win32.props ファイルを修正します。

    これら 2 つの *.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>
    

    Windows Vista の構成設定に PackageDir プロパティを追加します。 ほとんどの場合、既定値:<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 のビルド環境