Reintroducing Extension SDKs for Visual C++
An under-reported feature of Visual Studio 2012 is the ability to create Extension SDKs for Visual C++. SDK development is analogous to creating assemblies in .NET or JARs in Java and is very important for Windows 8 application development.
As C++ developers are well aware, building libraries is a rather tedious process. Each library is not just a DLL, it also includes the various header and TLB files that contain the metadata needed to link to the library.
An extension SDK includes not only that but also .NET assembly or Windows Metadata (WinMD) files, toolbox design-time binaries, build scripts, documentation, etc. The standardized directory structure is shown below:
The key to the Extension SDK is a file named SDKManifest.xml. This file tells Visual Studio and the compilers how to interpret the SDK.
Currently there are a lot of limitations the Extension SDK model. Even though they appear to be a perfect fit for normal C++ code, the IDE only supports Extension SDKs for Windows Store applications. According to someone going by the handle onovotny, “Extension SDKs do work for regular managed libraries (though there's no UI)”. You can see an example of this for C# on the NuGet forum.
Speaking of which, there is a proposal for adding Extension SDK support to NuGet. A timeline for implementing it does not appear to have been set.
Todd Montgomery Dec 19, 2014