ドライバー プロジェクトを WDK8 および Visual Studio 2012 に移行する過程で、ドライバー パッケージの出力ディレクトリ構成に関する小さな問題に遭遇しました。幸いなことに、標準のプロジェクト テンプレートと次の手順を使用して簡単に再現できます。
- VS 2012 を開き、スタート ページから [新しいプロジェクト] を選択します。
- [新しいプロジェクト] ダイアログで、[インストール済み] | [プロジェクト] を選択します。テンプレート | VisualC++ | Windows ドライバー | ネットワーキング | フィルター ドライバー: NDIS。場所を C:\Projects に変更し、[ソリューションのディレクトリを作成] を選択して、[OK] をクリックします。
- 標準ツールバーの [ソリューション プラットフォーム] ドロップダウンで [x64] を選択します。
- ソリューション エクスプローラーで、両方のプロジェクトを選択し、右クリックして、ショートカット メニューから [プロパティ] を選択します。
[構成] ドロップダウンで [すべての構成] を選択し、[構成プロパティ] を設定します。一般 | ディレクトリを "$(SolutionDir)bin\$(Platform)\$(ConfigurationName)\" に出力して、ソリューション ディレクトリの bin サブディレクトリにすべての出力を配置し、[OK] をクリックします。この時点で、以下を
dir \Projects\ndislsf1
返します。C:\Projects\ndislwf1 のディレクトリ
04/25/2013 09:42 AM <DIR> . 04/25/2013 09:42 AM <DIR> .. 04/25/2013 09:42 AM <DIR> ndislwf1 04/25/2013 09:42 AM <DIR> ndislwf1 Package 04/25/2013 09:46 AM 14,811,136 ndislwf1.sdf 04/25/2013 09:42 AM 7,627 ndislwf1.sln 2 File(s) 14,818,763 bytes 4 Dir(s) 6,701,723,648 bytes free
ここで、F6 キーを押してソリューションをビルドします
これまでのところすべて順調です。dir \Projects\ndislsf1 は、bin ディレクトリが作成されたことを示しており、さらに調査すると、すべての出力ファイルがそこに正しく配置されていることがわかります。
C:\Projects\ndislwf1 のディレクトリ
04/25/2013 09:47 AM <DIR> . 04/25/2013 09:47 AM <DIR> .. 04/25/2013 09:47 AM <DIR> bin 04/25/2013 09:47 AM <DIR> ndislwf1 04/25/2013 09:47 AM <DIR> ndislwf1 Package 04/25/2013 09:46 AM 14,811,136 ndislwf1.sdf 04/25/2013 09:42 AM 7,627 ndislwf1.sln 2 File(s) 14,818,763 bytes 5 Dir(s) 6,695,829,504 bytes free
標準ツールバーの [ソリューション構成] ドロップダウンで [Vista リリース] を選択し、もう一度 F6 キーを押してソリューションをビルドします。
C:\Projects\ndislwf1 のディレクトリ 2013 年 4 月 25 日午前 9 時 51 分。 2013/04/25 09:51 午前 .. 2013/04/25 09:47 AM ビン 2013/04/25 09:47 午前 ndislwf1 2013/04/25 09:47 AM ndislwf1 パッケージ 2013/04/25 09:46 AM 14,811,136 ndislwf1.sdf 2013/04/25 09:42 AM 7,627 ndislwf1.sln 2013/04/25 09:51 AM x64 2 ファイル 14,818,763 バイト 6 ディレクトリ 6,689,509,376 バイト空き
残念ながら、Vista リリースの出力は bin サブディレクトリではなく x64 に書き込まれます。実際、他のすべてのプロジェクトの出力も bin サブディレクトリを無視し、x64 で書き込みます。
他の誰かがこの問題を経験したことがありますか? もしそうなら、既知の回避策や修正が予想されますか?