为什么 AutoCAD 插件依赖于特定的 Visual Studio 版本?

Why are AutoCAD Plugins dependent on particular Visual Studio versions?

Autodesk mentions here AutoCAD 插件需要使用特定的 Visual Studio 版本开发,例如

AutoCAD 2016 (supports Microsoft Visual Studio 2012 and 2013)

AutoCAD 2015 (supports Microsoft Visual Studio 2012)

...

为什么会这样?我了解到您需要根据您的 AutoCAD 版本使用特定的 .NET Framework 版本。

但为什么 IDE?您可以为每个项目设置目标框架版本。 是因为编译器/调试器的问题吗?

我们计划从 AutoCAD 2012 升级到 AutoCAD 2016。因此我们的插件需要一个新的 IDE,并且更喜欢最新的 Visual Studio 版本 (2015)

这个严格的 VS 版本仅适用于 ObjectARX/C++。

对于 .NET,您只需要适当的框架版本即可开发,或者,如果您已经拥有 DLL,则遗留兼容性应该可以正常工作。但有一个例外,见下文:

  1. AutoCAD 2007 - 2012:使用 AcDbMgdAcMgd 编译您的代码并且您的代码应该适用于所有这些版本(除非您使用您正在执行的版本上不可用的功能)
  2. AutoCAD 2013 - 2017:此'new cycle'还需要参考AcCoreMgd,因此您需要单独编译的DLL

对于 C++,有关于 Decorated Names 的额外要求,VS 使用此编译代码。因此您可以调整工具集,但需要安装特定版本才能编译您的代码。

我可能会说,如果您使用 ActiveX/COM,您会有一些不同的顾虑:32 位和 64 位以及 AutoCAD 主要版本之间的引用不同,因此使用后期绑定或编译更容易每个 version/platform 的不同 DLL。