Visual Studio 2012 のあまり注目されていない機能のひとつに,Visual C++ でエクステンションSDK (Extension SDK) 開発が可能なことがある。これは .NET のアセンブリや Java の JAR の開発のようなもので,Windows 8 のアプリケーション開発では非常に重要だ。
C++ 開発者ならば周知のように,ライブラリの構築は手間のかかるプロセスである。ライブラリとは単なる DLL ではない。さまざまなヘッダ情報や,ライブラリへのリンクに必要なメタデータを格納した TLB ファイルといったものも必要だ。
エクステンションSDKではさらに .NET アセンブリあるいは Windows メタデータ (WinMD) ファイル,ツールボックス開発時バイナリ,ビルドスクリプト,資料などが含まれる。それらのディレクトリ構成は以下のように標準化されている。
エクステンションSDK で重要なのは SDKManifest.xml というファイルで,Visual Studio とコンパイラに SDK を解釈する方法を指示するものだ。
現時点のエクステンションSDK のモデルには多くの制限がある。通常の C++ コードには完璧にフィットするように見えるが,IDE がエクステンションSDK をサポートする対象は Windows Store アプリケーションに限られる。ただし onovonty というハンドル名を使う誰かによれば,"エクステンションSDK は通常のマネージドライブラリにも動作する (ただし UI は存在しない)" ということで,NuGet フォーラムに C#による例 が紹介されている。
その NuGet にエクステンションSDK サポートを追加しようという提案 がある。ただし実現に向けたスケジュールはまだ設定されていないようだ。
http://stackoverflow.com/questions/13149826/any-tools-for-building-extension-sdks-for-visual-c