Visual Studio 2012 有一个没有得到充分报道的特性,那就是它拥有为 Visual C++ 创建扩展SDK 的能力。SDK 开发类似于在.NET 中创建程序集或者在Java 中创建JAR 文件,它对于开发Windows 8 应用程序非常重要。
C++ 开发者清楚,构建类库是一个相当乏味的过程。每个库并不仅仅是一个 DLL 文件,它还包括各种头文件和 TLB 文件(其中包含的是链接到该类库所需的元数据)。
扩展 SDK 不仅包括以上提到的那些,还包括.NET 程序集、Windows 元数据文件(WinMD)、工具箱设计时二进制文件、构建脚本和文档等等。标准的目录结构如下图所示:
扩展 SDK 的关键是一个名为 SDKManifest.xml 的文件。该文件用来告知 Visual Studio 和编译器如何解析 SDK。
目前,扩展 SDK 的模型还有很多局限性。即使它们和普通 C++ 代码的配合看起来很完美,但是 IDE 却只支持为 Windows 商店应用开发扩展 SDK。凭借处理 onovotny 的经验,有人指出,“扩展 SDK 对普通的托管库是有效的(虽然没有 UI)”。可以在 NuGet 论坛上找到 C#的相关例子。
说到这里,有一个关于为 NuGet 提供扩展 SDK 支持的建议(链接)。至于具体实现,时间表似乎并未确定。
http://stackoverflow.com/questions/13149826/any-tools-for-building-extension-sdks-for-visual-c
查看英文原文: Reintroducing Extension SDKs for Visual C++
感谢臧秀涛对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论