Bagikan melalui


ProjectUpgradeTool

Catatan

Alat ini tidak lagi disertakan dalam WDK. Anda masih dapat menemukannya di WDK untuk Windows 10, versi 1607.

ProjectUpgradeTool mengambil proyek Microsoft Visual Studio 2012 (*.vcxproj) dan file solusi (*.sln) yang dibuat dengan Windows Driver Kit (WDK) untuk Windows 8 dan meningkatkannya untuk bekerja dengan WDK untuk Windows 8.1 dan Microsoft Visual Studio 2013.

Penting ProjectUpgradeTool tidak mengubah file sumber Anda. Alat ini hanya mengonversi file proyek dan solusi. Secara default, alat ini menyimpan salinan cadangan file asli.

Untuk meningkatkan proyek atau solusi WDK 8 ke WDK 8.1

  1. Buka jendela Perintah Visual Studio.

  2. Ketik perintah ProjectUpgradeTool dan tentukan direktori root (atau induk) yang berisi proyek Windows Driver Kit (WDK) 8 atau file solusi yang ingin Anda tingkatkan ke Windows Driver Kit (WDK) 8.1 untuk Windows 8.1. Misalnya, perintah berikut memutakhirkan semua file di direktori dan subdirektori C:\myDriver.

    ProjectUpgradeTool.exe  C:\myDriver
    
  3. Buka proyek WDK 8.1 atau file solusi menggunakan Visual Studio 2013. Alat ini menyimpan nama asli file. Versi sebelumnya disimpan dengan ekstensi nama file .backup. Catatan Jika Anda ingin dapat membangun target untuk Windows Vista, menggunakan Visual Studio 2013 dan WDK 8.1, lihat Apa yang harus dilakukan jika Anda tidak dapat membangun target Windows Vista setelah memigrasikan proyek WDK 8 ke WDK 8.1.

Sintaks ProjectUpgradeTool

Alat peningkatan proyek terletak di direktori %WindowsSdkDir%\bin\x86\. Misalnya, C:\Program Files (x86)\Windows Kits\8.1\bin\x86.

ProjectUpgradeTool.exe memiliki sintaks berikut:

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

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

Menentukan nama untuk file Log, dan menentukan tingkat pengelogan (lihat Verbosity).

-ConsoleLog:<Verbosity>

Menentukan nama untuk file log Konsol, dan menentukan tingkat pengelogan (lihat Verbosity).

Verbositas

Tingkat pengelogan default untuk file Log dan pengelogan Konsol masing-masing adalah Verbose dan Informasi . Verbosity adalah salah satu System.Diagnostics.SourceLevels.

-NoBackup

Memberi tahu ProjectUpgradeTool untuk tidak membuat salinan cadangan proyek asli (.vcxproj) atau solusi (.sln). Ketika Anda memilih opsi ini, file proyek dan solusi asli ditimpa dan hanya akan berfungsi dengan WDK untuk Windows 8.1 dan Visual Studio 2013.

-NoToolsetUpgrade

Tentukan opsi -NoToolsetUpgrade jika Anda tidak ingin menggunakan toolset platform WDK 8.1 saat Anda menentukan konfigurasi build untuk versi Windows sebelum Windows 8.1. Saat Anda memilih opsi ini, hanya konfigurasi WinPreRel yang akan dibuat menggunakan WDK terbaru.

-InPlaceUpgrade

Mengganti setiap konfigurasi build yang ada dengan konfigurasi WinPreRel baru. Ini mencegah Anda membangun untuk versi Windows sebelumnya.

-ForceUpgrade

Memaksa setiap file proyek (.vcxproj) untuk ditingkatkan, bahkan jika proyek tidak memenuhi persyaratan proyek driver.

-KeepObsoleteConfigs

Mempertahankan konfigurasi target untuk sistem operasi yang tidak lagi didukung oleh WDK (misalnya, Windows Vista). Namun, untuk membangun target usang ini, Anda harus menginstal Visual Studio 2012 dan WDK 8 di komputer, selain WDK 8.1 dan Visual Studio 2013. Misalnya, Anda ingin meningkatkan proyek driver untuk menggunakan WDK 8.1 untuk semua versi target yang didukung (Windows 7, Windows 8, dan Windows 8.1). Dan Anda masih ingin menggunakan proyek driver yang sama untuk terus membangun Windows Vista. Untuk melakukannya, Anda meningkatkan file proyek menggunakan opsi -KeepObsoleteConfigs untuk menyimpan konfigurasi target Windows Vista dalam proyek. Konfigurasi Windows Vista akan terus menggunakan set alat WindowsKernelModeDriver8.0 (tersedia di WDK 8), bahkan jika Anda membangun proyek di Visual Studio 2013.

Komentar

Apa yang harus dilakukan jika Anda melihat Kesalahan MSB8020 (Platform Toolset = 'WindowsKernelModeDriver8.0') tidak dapat ditemukan

Jika Anda mencoba membuka proyek atau solusi yang dibuat dengan WDK 8, Anda mungkin melihat pesan kesalahan berikut saat mencoba membangun proyek menggunakan 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...".

Toolset platform di WDK 8 adalah WindowsKernelModeDriver8.0. Untuk memperbaiki kesalahan ini, jalankan ProjectUpgradeTool seperti yang dijelaskan di sini dan tingkatkan solusi WDK 8 Anda untuk menggunakan set alat yang tersedia di WDK 8.1

Apa yang harus dilakukan jika Anda tidak dapat membangun target Windows Vista setelah memigrasikan proyek WDK 8 ke WDK 8.1

Masalah: Tidak dapat membangun target Windows Vista setelah memigrasikan proyek WDK 8 ke WDK 8.1.

Skenario: Anda telah membuat proyek menggunakan WDK 8 dan Visual Studio 2012. Anda telah meningkatkan proyek/solusi menggunakan WDK 8.1 dan Visual Studio 2013, menggunakan alat ProjectUpgradeTool. Anda melakukan ini menggunakan perintah berikut untuk mempertahankan konfigurasi Windows Vista: ProjectUpgradeTool.exe PathToProjectFolder -KeepObsoleteConfigs.

Anda membuka proyek di WDK 8.1. Saat Anda membangun target Win32 Windows Vista, Anda mungkin melihat pesan kesalahan berikut:

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

Saat Anda membangun target Windows Vista x64, Anda mungkin melihat pesan kesalahan berikut:

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

Solusi sementara: Anda perlu membuat dua perubahan.

  1. Koreksi file WindowsDriver8.0.x64.props dan WindowsDriver8.0.Win32.props.

    Anda perlu membuat koreksi dalam ekspresi bersyarat dalam dua file *.props ini. File terletak di direktori C:\Program Files (x86)\Windows Kits\8.0\build.

    Di setiap file *.props, temukan ekspresi di mana ('$(VisualStudioVersion)' != '11.0'). Misalnya, instans pertama akan terlihat seperti berikut:

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

    Ubah tidak sama dengan (!=) menjadi kurang dari (&lt;).

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

    Temukan instans ekspresi berikutnya di mana ('$(VisualStudioVersion)' != '11.0')

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

    Dan ubah tidak sama dengan (!=) menjadi kurang dari (&lt;).

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

    Setelah Anda membuat perubahan, simpan kedua file *.props.

  2. Koreksi file proyek untuk driver.

    Buka file proyek (*.vcxproj) untuk driver Anda.

    Temukan konfigurasi target Vista di file proyek Anda (rilis dan debug). Contohnya:

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

    Tambahkan properti PackageDir ke pengaturan konfigurasi Windows Vista Anda. Dalam kebanyakan kasus, Anda harus menggunakan nilai default: <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>
    

    Buat perubahan yang sama untuk konfigurasi Anda yang lain.

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

    Setelah membuat perubahan ini dan menyimpan file, Anda dapat membuka dan membangun proyek di Visual Studio 2013. Proyek harus terus berfungsi dengan Visual Studio 2012. Perhatikan bahwa bahkan setelah perubahan ini, Anda masih harus menginstal WDK 8 dan Visual Studio 2012 di komputer.

Membangun Driver

Lingkungan build WDK dan Visual Studio