Сведения о совместимости
С переходом на каждую новую версию программных продуктов на основе AutoCAD выполните повторное тестирование пользовательских приложений, чтобы убедиться в том, что они работают правильно, прежде чем развернуть последнюю версию обновления для всех пользователей.
При обновлении до последнего выпуска может понадобиться повторно приобрести приложения сторонних разработчиков и перекомпилировать уже имеющиеся пользовательские приложения .NET и ObjectARX. Изменения, вносимые в интерфейсы API AutoCAD, зависят от конкретного выпуска, при этом наиболее существенные изменения согласуются с внедрением нового собственного формата файла чертежа.
Прим.: Начиная с программных продуктов на основе AutoCAD 2014, пользовательские приложения должны работать в безопасном режиме, когда для системной переменной SECURELOAD установлено значение 1 или 2. При работе в режиме безопасности программа на основе AutoCAD ограничивается загрузкой и выполнением файлов, содержащих код из доверенных местоположений; доверенные местоположения определяются системной переменной TRUSTEDPATHS. Для получения дополнительной информации см. раздел «Безопасность и антивирусная защита».
В таблице ниже перечислены поддерживаемые версии пакетов средств разработки (SDK) .NET и ObjectARX, с соответствующими версиями AutoCAD.
Версия AutoCAD | Поддержка .NET SDK и ObjectARX SDK | .NET Framework |
---|---|---|
AutoCAD 2022 | AutoCAD 2022 , AutoCAD 2021 | 4.8 |
AutoCAD 2021 | AutoCAD 2021 | 4.8 |
AutoCAD 2020 | AutoCAD 2020 , AutoCAD 2019 | 4.7 |
AutoCAD 2019 | AutoCAD 2019 | 4.7 |
AutoCAD 2018 | AutoCAD 2018 | 4.6 |
AutoCAD 2017 | AutoCAD 2017 | 4.6 |
AutoCAD 2016 | AutoCAD 2015, AutoCAD 2016 | 4.5 |
AutoCAD 2015 | AutoCAD 2015 | 4.5 |
AutoCAD 2014 | AutoCAD 2013, AutoCAD 2014 | 4.0 |
AutoCAD 2013 | AutoCAD 2013 | 4.0 |
AutoCAD 2012 | AutoCAD 2010, AutoCAD 2011, AutoCAD 2012 | 3.51, пакет обновления 1 |
AutoCAD 2011 | AutoCAD 2010, 2011 | 3.51, пакет обновления 1 |
AutoCAD 2010 | AutoCAD 2010 | 3.51, пакет обновления 1 |
AutoCAD 2009 | AutoCAD 2007, AutoCAD 2008, AutoCAD 2009 | 3.0 |
AutoCAD 2008 | AutoCAD 2007, AutoCAD 2008 | 2.0 |
AutoCAD 2007 | AutoCAD 2007 | 2.0 |
AutoCAD 2006 | AutoCAD 2004, AutoCAD 2005, AutoCAD 2006 | 1.1, пакет обновления 1 |
AutoCAD 2005 | AutoCAD 2004, AutoCAD 2005 | 1.1 |
AutoCAD 2004 | AutoCAD 2004 | Отсутствует |
Следующие ресурсы могут оказаться полезными, если требуется определить изменения, внесенные в интерфейс прикладного программирования (API), которые могут повлиять на пользовательские программы:
- Справка по продукту — изменения, влияющие на язык программирования AutoLISP, отражены в разделе «Справочник по новым и измененным функциям AutoLISP (AutoLISP)» онлайн-справки по продукту.
- Справочное руководство по ActiveX — описание изменений, внесенных в ActiveX API, можно найти в разделе «Журнал ActiveX API» Руководства разработчика ActiveX (:\Program Files\Common Files\Autodesk Shared\acad_aag.chm).
- Пакет SDK управляемых компонентов .NET — описание изменений, внесенных в пакет SDK управляемых компонентов .NET, можно найти в разделе новых возможностей и в руководстве по миграции справочного руководства по работе с управляемыми компонентами .NET (:\\docs\arxmgd.chm — https://www.autodesk.com/developer-network/platform-technologies/autocad/objectarx).
- Пакет SDK ObjectARX — описание изменений, внесенных в пакет SDK ObjectARX, можно найти в разделе новых возможностей и в руководстве по миграции справочного руководства по работе с компонентами ObjectARX (:\\docs\arxref.chm — https://www.autodesk.com/developer-network/platform-technologies/autocad/objectarx).
- Совместимость пользовательских и сторонних приложений
Изменения, внесенные в интерфейсы прикладного программирования (API) AutoCAD, появляются в каждой новой версии, но не требуют перекомпиляции или изменения существующих пользовательских программ, поэтому они работают в последней версии. - Сведения о совместимости AutoLISP
В программы на языке AutoLISP® часто требуется внести небольшие изменения, чтобы они могли выполняться в новой версии. - Совместимость управляемых компонентов .NET
Управляемые приложения .NET часто связаны с корпоративными и сторонними приложениями, способными расширить спектр возможностей программы на основе AutoCAD. - Совместимость приложений ObjectARX
Приложения ObjectARX часто связаны с внутренними и сторонними приложениями, призванными добавить новые функции в программу на основе AutoCAD. - Сведения о совместимости VBA и ActiveX
В последней версии продолжена поддержка среды разработки VBA, но при этом потребуется вручную загрузить и установить среду разработки и выполнения. - Вопросы и ответы. Почему пользовательские программы не работают в последней версии?
На уровень выше: Адаптация и программирование
Понятия, связанные с данным
- Адаптация и программирование
- Сведения о совместимости AutoLISP
- Сведения о совместимости VBA и ActiveX
- Совместимость управляемых компонентов .NET
- Совместимость приложений ObjectARX
- Внесение изменений в последнюю и недавние версии
AutoCAD- 2009. Net. Base 1.1.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module’s version of Install-Package.
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add AutoCAD-2009.Net.Base --version 1.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: AutoCAD-2009.Net.Base, 1.1.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install AutoCAD-2009.Net.Base as a Cake Addin #addin nuget:?package=AutoCAD-2009.Net.Base&version=1.1.0 // Install AutoCAD-2009.Net.Base as a Cake Tool #tool nuget:?package=AutoCAD-2009.Net.Base&version=1.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
AutoCAD 2009 .Net API (main set of assemblies).
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET Framework | net35 net35 is compatible. net40 net40 was computed. net403 net403 was computed. net45 net45 was computed. net451 net451 was computed. net452 net452 was computed. net46 net46 was computed. net461 net461 was computed. net462 net462 was computed. net463 net463 was computed. net47 net47 was computed. net471 net471 was computed. net472 net472 was computed. net48 net48 was computed. net481 net481 was computed. |
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.1.0 | 1 852 | 22.07.2016 |
1.0.2 | 1 155 | 21.07.2016 |
1.0.1 | 1 022 | 21.07.2016 |
1.0.0 | 1 030 | 21.07.2016 |
0.1.0-beta | 813 | 21.07.2016 |
0.1.0-alpha | 843 | 20.07.2016 |
The AcDx.dll assembly was added. Summary info was added.
CAD tip # 6664:
Versions of MS .NET Framework used in individual AutoCAD versions.
- AutoCAD 2005/ AutoCAD LT 2005 uses .NET Framework 1.1
- AutoCAD 2006/ AutoCAD LT 2006 uses .NET Framework 1.1 sp 1
- AutoCAD 2007/ AutoCAD LT 2007 uses .NET Framework 2.0
- AutoCAD 2008/ AutoCAD LT 2008 uses .NET Framework 2.0
- AutoCAD 2009/ AutoCAD LT 2009 uses .NET Framework 3.0
- AutoCAD 2010/ AutoCAD LT 2010 uses .NET Framework 3.5 SP1
- AutoCAD 2011/ AutoCAD LT 2011 uses .NET Framework 3.5 SP1
- AutoCAD 2012/ AutoCAD LT 2012 uses .NET Framework 4.0
Prices — CAD eShop:
applies to: AutoCAD � AutoCAD LT �
See also: | |
Tip 11854: | iLogic error in Inventor 2019: invocation of constructor threw an exception |
Tip 10482: | Compatibility of Autodesk products with Windows 10. |
Tip 9895: | Missing or distorted parts of the ribbon or QAT panel. |
Tip 9503: | AutoCAD crashes with APPCRASH in AdApplicationFrame.dll |
Tip 9032: | How to install AutoCAD 2013 or Inventor 2013 in Windows 8? |
Selected tip: DesignCenter inserts 1000x larger blocks.
Have we helped you? If you want to support the CAD Forum web service, consider buying one of our CAD applications, or our custom software development offerings, or donating via PayPal (see above). You may also add a link to your web — like this «fan» link:
Featuring: Use Google Earth images in your AutoCAD projects with the Plex.Earth Tools |
Please use these tips at your own risk.
Arkance Systems is not responsible for possible problems that may occur as a result of using any of these tips.
CAD Forum — tips, tricks, utilities, help, how-tos and FAQ for AutoCAD, LT, Inventor, Revit, Map, Civil 3D, Fusion 360, Forma, 3ds Max and other Autodesk software (support by Arkance Systems) — see About
Arkance Systems CZ s.r.o. (CAD Studio) — Autodesk Platinum Partner & Training Center & Consulting Services Partner
Программирование, настройка и администрирование CAD систем
Маленькая шпаргалка на тему совместимости версий .NET плагинов, AutoCAD, .NET Framework и MS Visual Studio. Вообще, Visual Studio можно использовать любую: главное, чтобы она поддерживала возможность писать код под нужную нам версию .NET Framework. Разные версии AutoCAD могут использовать разные версии .NET Framework и плагины, использующие эти платформы. Кроме того, некоторые управляемые плагины можно использовать в разных версиях AutoCAD без необходимости их перекомпиляции.
[R17.2] AutoCAD 2009: .NET 3.0, 3.5; Visual Studio 2005 и более новые.
[R18.0] AutoCAD 2010: .NET 3.5; Visual Studio 2005 и более новые.
[R18.1] AutoCAD 2011: .NET 3.5, 4.0, 4.5, 4.5.1 (см. примечание 1); Visual Studio 2005 и более новые.
[R18.2] AutoCAD 2012: .NET 4.0, 4.5, 4.5.1 (см. примечание 2); Visual Studio 2010 и более новые.
[R19.0] AutoCAD 2013: .NET 4.0, 4.5, 4.5.1 (см. примечание 2); Visual Studio 2010 и более новые.
[R19.1] AutoCAD 2014: .NET 4.0, 4.5, 4.5.1 (см. примечание 2); Visual Studio 2010 и более новые.
[R20.0] AutoCAD 2015: .NET 4.5, 4.5.1 (см. примечание 2); Visual Studio 2012 и более новые.
[R20.1] AutoCAD 2016: .NET 4.5, 4.5.1 (см. примечание 2); Visual Studio 2012 и более новые.
Особым образом хочется выделить AutoCAD 2010 и 2011. Официально компанией Autodesk заявлено, что эти версии требуют для своей работы Microsoft Visual Studio 2008 with Service Pack 1 и Microsoft .NET Framework 3.5 with Service Pack 1 . Однако практика показывает, что если у программиста под рукой окажется только Visual Studio 2005 и AutoCAD 2011, то написать плагин он сможет. Но в виду того, что в Visual Studio 2005 нет возможности указать целевую версию платформы .NET, этот плагин будет компилироваться с использованием .NET 2.0. Соответственно, при написании плагина AutoCAD, программист будет ограничен рамками платформы .NET 2.0. Например, он не сможет использовать технологии LINQ и WPF.
Для примера, в Visual Studio 2005 автор написал и скомпилировал плагин для AutoCAD 2011, который успешно запустился в обозначенной версии AutoCAD:
1: using System;
2: using cad = Autodesk.AutoCAD.ApplicationServices
3: .Application;
4: using Rt = Autodesk.AutoCAD.Runtime;
6: namespace acad_20117: public class Class18: [Rt.CommandMethod("test", Rt.CommandFlags.Modal)]9: public void Test()10: cad.DocumentManager.MdiActiveDocument
11: .Editor.WriteMessage(
12: "MS VS 2005: Hello, AutoCAD 2011!\n");В подкаталоге inс установленного ObjectARX SDK, управляемые сборки появились лишь начиная с AutoCAD 2011. .NET плагины, использующие сборки AutoCAD только из этого каталога, можно без опасений компилировать как AnyCPU. В иных случаях нужно быть осторожным. Начиная с AutoCAD 2013 в обозначенном подкаталоге появился файл AcCoreMgd.dll. В новый файл было вынесено часть функционала из файла AcDbMgd.dll и часть из файла AcMgd.dll.
Небольшая переведённая мною на русский язык цитата, автором которой является Scott McFarlane [CP2654]:
В последние несколько лет компания Autodesk работала над разделением бизнес логики AutoCAD от логики взаимодействия с GUI. Такое разделение позволяет иметь единую кодовую базу, не зависящую от конкретной операционной системы (Windows, MacOS). Это разделение было названо "большим разделением" (The Big Split). Указанная работа была завершена в AutoCAD 2013 и теперь мы имеем трёх уровневую архитектуру, как показано ниже:
Важно понимать, что каждый уровень зависит от ниже расположенных уровней и не зависит от уровней расположенных выше. Два нижних уровня представляют собой механизм ядра AutoCAD (AutoCAD Core Engine). В виду высокой скорости своего запуска, помимо использования в пакетной обработке чертежей, приложение AcCoreConsole так же хорошо подходит и для проведения автоматического тестирования кода.
Теперь программный код рекомендуется писать разделяя его зависящую от AutoCAD API часть от той части, которая не зависит от AutoCAD API. Затем, часть кода, зависящую от AutiCAD API в свою очередь рекомендуется делить на две части: на ту, которая зависит лишь от базового уровня (библиотеки acdbmgd.dll и accoremgd.dll) и на ту, которая зависит от UI (acmgd.dll).
Начиная с AutoCAD 2013 SP1 был внедрён механизм безопасности загрузки в AutoCAD сторонних программных библиотек (подробнее здесь). Начиная с AutoCAD 2014, на вкладке Files диалогового окна Options присутствует ветка Trusted Locations .
Если вы написали управляемый плагин под одну версию AutoCAD, то сможете использовать его и для другой версии AutoCAD, в случае выполнения следующих условий:
1. Обе версии AutoCAD могут использовать ту версию .NET Framework, которая применялась при написании плагина (см. примечание 1).
2. К вашему плагину AutoCAD подключены библиотеки, присутствующие в обоих версиях AutoCAD.
3. Ваш плагин использует только ту часть API, которая присутствует в обоих рассматриваемых версиях AutoCAD.
4. Если управляемый плагин скомпилирован с опцией x86 или x64 (например, по причине использования Interop в вашем коде), то и целевые версии AutoCAD должны иметь ту же самую разрядность, что и плагин.
ВНИМАНИЕ!
Даже если выполнены все обозначенные выше условия, всё равно следует обязательно произвести тестирование (желательно с использованием NUnit или Gallio) вашего плагина на полную его совместимость с иными, интересующими вас версиями AutoCAD (т.е. загрузить плагин и проверить его работоспособность).
Примечание 1:
В AutoCAD 2011 конфигурационный файл acad.exe.config содержит закомментированные XML элементы, указывающие целевую версию .NET Framework:
В этом состоянии AutoCAD 2011 использует .NET 3.5, но если указанные выше XML элементы раскомментировать, то AutoCAD 2011 будет использовать наиболее новую версию .NET из тех которые приложение сможет найти и использовать. Применительно к AutoCAD 2011 это будут версии .NET 4.0, 4.5 и 4.5.1.
Примечание 2:
В отличие от AutoCAD 2011, в конфигурационных файлах AutoCAD 2012-2016 обозначенные в "Примечании 1" XML элементы по умолчанию раскомментированы.
Примечание 3:
Если вместо acad.exe используется accoreconsole.exe , то его конфигурационный файл, соответственно, следует искать под именем accoreconsole.exe.config .8 комментариев:
Спасибо, Андрей! Ценная информация! Шпаргалка устраняет неопределенность в вопросах совместимости на начальном этапе работы с .Net. Ответить Удалить
Здравствуйте Андрей. Пожалуйста скажите, как с Вами можно связаться? Я хочу задать Вам пару вопросов по теме этой статьи. Ответить Удалить
Здравствуйте Михаил. Поскольку вопросы относятся к данной заметке, то Вы можете задать их прямо здесь, в комментариях. Возможно они будут интересны ещё для кого-то, кто будет читать эту страничку. Ответить Удалить
В таком случае вопрос следующего характера:
У меня есть задача написать плагин для AutoCAD на C#. Этот плагин должен создавать большую пачку автоматически генерируемых документов (чертежи, схемы, что-то еще). Проблема в версионности.
В конторе, где я работаю, используют AutoCAD 2009, но при этом используют файлы формата AutoCAD 2004. Покопавшись в интернете, я нашел способ сохранять файлы dwg в более старых форматах.
У меня есть Visual Studio 2015, установлены Framework`и (2.0 - 4.6). Сверившись с вашей статьёй я попробовал накидать простой плагин (HelloWorld) в указанной версии Visual Studio для AutoCAD 2009. После компиляции команда netload сказала, что мой плагин использует неподдерживаемые версии .NET Framework.
Я пробовал версии 2.0, 3.0, 3.5, 4.0. Ни с одной из них AutoCAD работать не хочет.Тогда я подумал, что возможно нужно написать отдельный exe файл, который будет делать всё то же самое (создавать файлы и т.д.). Но прочитал в сети, что у меня будет сильно урезанная функциональность.
В итоге я погряз в незнании/непонимании того, как мне совместить все версии в кучу.
Я хочу понять:
1) Выполнима ли задача написания плагина для старых версий AutoCAD в Visual Studio 2015?
2) Можно ли (с не которой долей уверенности) считать, что плагин для более новых версий можно будет достаточно легко поддерживать (переписывать на ещё более новые версии AutoCAD)?
3) Есть ли смысл уговорить начальство перейти на новые версии AutoCAD (при этом насколько трудно перевести файлы старого формата 2004 в новый 2017) ?Что вообще можете сказать по такой задаче: AutoCAD 2009/dwg 2004/VS2015/Framework ?.0 ?
> Я пробовал версии 2.0, 3.0, 3.5, 4.0. Ни с одной из них AutoCAD работать не хочет.
Такого не может быть в принципе.
2. Как правило, я пишу код для AutoCAD 2009. Результат компиляции так же работает и в 2010-2012. Тот же самый код я компилирую для AutoCAD 2013. Результат компиляции так же работает и в 2014-2017. Использую Visual Studio 2015. Легко или тяжело поддерживать - это зависит от того, насколько сильно от версии к версии AutoCAD меняется та часть API, которая была задействована в коде плагина. За свою практику программирования под AutoCAD я не встречал серьёзных проблем в этом вопросе.
3. Я не работал с форматами DWG2004. Для формата DWG2007 трудностей в пересохранении в формат DWG2013 не замечал. Подозреваю, что и с DWG2004 их не будет. Решение о переходе или не переходе на новые версии AutoCAD должно приниматься аргументированно, на основе взвешивания всех "за" и "против", специфичных для вашей компании.
> Что вообще можете сказать по такой задаче: AutoCAD 2009/dwg 2004/VS2015/Framework ?.0 ?
Я не вижу никаких проблем в использовании обозначенной комбинации.
Андрей, большое спасибо за оперативный ответ!
Ваш комментарий сэкономил мне долгие часы поиска нужной информации и кучу нервов.
Имея на руках всю информацию с этой страницы, попробую разобраться с плагином, а также с начальством 🙂День добрый. Может подскажите при компиляции примера dotNet\SheetSetVBDotNet.vbproj
выходит ошибка Ошибка 8 :
The command "corflags /32bit- "D:\ObjectARX 2012\samples\dotNet\SheetSet\bin\Debug\Interop.ACSMCOMPONENTS18Lib.dll"" exited with code 9009. D:\ObjectARX 2012\samples\dotNet\SheetSet\SheetSetVBDotNet.vbproj 137 5 SheetSetVBDotNetГде отключить в Visual Studio этот флаг
тк у меня 64 битная версия Ответить Удалить