当 visual studio 扩展使用对旧程序集的引用时类型转换失败

Typecast fails when visual studio extension uses reference to older assembly

我正在编写一个引用 Microsoft.VisualStudio.VCProjectEngine 程序集的 Visual Studio 扩展。

现在我正尝试从 EnvDTE.Project 转换为 Microsoft.VisualStudio.VCProjectEngine.VCProject,如下所示:

VCProject vcProject = project.Object as VCProject;

在 运行 我在 Visual Studio 2015 年使用版本 14.0 VCProjectEngine 程序集的扩展时,此转换工作正常。但是,当我将版本更改为 12.0 时转换失败,以便我的扩展也可以安装到 VS2013。这里一定有我想念的东西。

如何引用 VCProjectEngine 程序集以便我的类型转换在 VS2013 和 VS2015 中工作?

这个程序集对于不同的VS版本确实有不同的版本,每个版本的VS都需要引用各自的程序集。

参考:

https://social.msdn.microsoft.com/Forums/en-US/d47bfe90-19bb-4c0c-9f36-74ff60eb490d/vcproject-interface-targeting-multiple-versions?forum=vsx