CAD
Ihr Add-in lief jahrelang ohne Murren – und nach dem Umstieg auf AutoCAD 2027 lädt es nicht mehr. Oder es lädt, aber die gespeicherten Einstellungen Ihrer Anwender sind plötzlich weg. Beides hat denselben Grund: AutoCAD 2027 läuft auf .NET 10.
Was sich geändert hat
Ein Umzug ist die beste Gelegenheit, den Keller auszumisten. Die meisten Möbel kommen mit, manches passt nicht durch die neue Tür. So ist es auch hier. AutoCAD 2021 bis 2024 laufen auf dem .NET Framework 4.8, AutoCAD 2025 und 2026 auf .NET 8 und AutoCAD 2027 (intern R26.0, DLLs in Version 26.0) auf .NET 10.
| AutoCAD | .NET | Visual Studio |
|---|---|---|
| 2021 bis 2024 | .NET Framework 4.8 | 2019 bzw. 2022 |
| 2025 und 2026 | .NET 8, ab Update 2025.1.4 bzw. 2026.1.2 .NET 10 | 2022, ab diesen Updates 2026 |
| 2027 | .NET 10 | 2026 |
Wichtig ist der Binärbruch: Ein Add-in für AutoCAD 2025 oder 2026 muss für 2027 neu gebaut werden – egal, ob es mit .NET 8 oder .NET 10 entstanden ist. Dazu kommt ein fester Termin. Microsoft beendet die Unterstützung für .NET 8 am 10. November 2026. Autodesk hat deshalb auch AutoCAD 2025 und 2026 mit den genannten Updates auf .NET 10 gestellt, ohne die API zu ändern.
Die gute Nachricht: An der AutoCAD-API selbst hat sich wenig getan. Die meiste Arbeit steckt in .NET – in der Projektdatei, in ein paar verschwundenen Klassen und in Verhalten, das sich still geändert hat.
Schritt 1: Eine neue Projektdatei statt Umbau
Projektdateien aus der Zeit des .NET Framework sind schnell 150 Zeilen lang. Umbauen lohnt sich nicht. Legen Sie eine neue Datei im SDK-Format an und übernehmen Sie die Quelldateien. Für AutoCAD 2027 reicht das hier:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!-- AutoCAD 2027 läuft auf .NET 10, "-windows" bringt WPF und WinForms -->
<TargetFramework>net10.0-windows</TargetFramework>
<Platforms>x64</Platforms>
<PlatformTarget>x64</PlatformTarget>
<UseWPF>true</UseWPF>
<UseWindowsForms>true</UseWindowsForms>
<ImplicitUsings>disable</ImplicitUsings>
<EnableDynamicLoading>true</EnableDynamicLoading>
<AcadPfad>C:\Program Files\Autodesk\AutoCAD 2027\</AcadPfad>
</PropertyGroup>
<ItemGroup>
<!-- Private=false: AutoCAD bringt die DLLs selbst mit -->
<Reference Include="accoremgd">
<HintPath>$(AcadPfad)accoremgd.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="acdbmgd">
<HintPath>$(AcadPfad)acdbmgd.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="acmgd">
<HintPath>$(AcadPfad)acmgd.dll</HintPath>
<Private>false</Private>
</Reference>
</ItemGroup>
</Project>
Jede Zeile hat ihren Grund. UseWPF und UseWindowsForms braucht es, weil die AutoCAD-DLLs auf beides verweisen; ohne sie meldet der Bau die Warnung MSB3277. ImplicitUsings bleibt aus, sonst sind Application und Exception mehrdeutig (Fehler CS0104). Und Private auf false verhindert, dass der Bau die AutoCAD-DLLs samt allen Abhängigkeiten in den Ausgabeordner kopiert – in unserem Versuch waren das 37 DLLs mit 61,8 MB.
Die alte Properties\AssemblyInfo.cs löschen Sie oder setzen GenerateAssemblyInfo auf false, sonst kommt der Fehler CS0579. Binding Redirects aus einer app.config wirken unter .NET 10 nicht mehr.
Schritt 2: Was erst zur Laufzeit auffällt
Unangenehmer sind die Fälle, die der Compiler durchlässt. Wir haben sie in einem Testprogramm einmal unter .NET Framework 4.8 und einmal unter .NET 10 laufen lassen:
- BinaryFormatter: Seit .NET 9 wirft jeder Aufruf eine
PlatformNotSupportedException, AutoCAD 2027 schaltet ihn zusätzlich ab. Ersatz sindXmlSerializeroderSystem.Text.Json. Denken Sie an die alten Dateien Ihrer Kunden – die neue Fassung kann sie nicht mehr lesen. - AppDomain.CreateDomain und Thread.Abort gibt es nicht mehr. Ersatz sind
AssemblyLoadContextundCancellationToken. - Codepage 1252 kennt .NET 10 erst nach einer Anmeldung.
- Process.Start öffnet Dateien und Webadressen nur noch mit
UseShellExecute = true. - Marshal.GetActiveObject fehlt. Im Add-in kommen Sie über
Application.AcadApplicationan die COM-Schnittstelle. - Assembly.LoadFile lädt in einen eigenen Ladekontext. Nehmen Sie
Assembly.LoadFrom.
// Windows-1252 (alte Stücklisten, CSV-Dateien): unter .NET 10 erst nach Anmeldung
#if NET
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
#endif
var ansi = Encoding.GetEncoding(1252);
// Datei oder Webadresse öffnen: UseShellExecute ist in .NET 10 standardmäßig false
Process.Start(new ProcessStartInfo(pfad) { UseShellExecute = true });
Mehrere AutoCAD-Versionen aus einem Projekt
Solange Ihre Kunden mit AutoCAD 2024 und 2027 arbeiten, braucht Ihr Add-in zwei Fassungen. Zwei Projekte sind nicht nötig. Mit TargetFrameworks (Mehrzahl) und dem Wert net48;net10.0-windows baut das SDK beide Fassungen nacheinander. Den Pfad zu den AutoCAD-DLLs setzt je Ziel eine PropertyGroup mit Bedingung, und ein eigenes Symbol wie ACAD2024 trennt im Quelltext die wenigen Stellen, die sich unterscheiden. Für net48 brauchen Sie zusätzlich LangVersion auf latest und, falls Sie dynamic verwenden, einen Verweis auf Microsoft.CSharp. Ausgeliefert wird in getrennten Ordnern eines Plug-in-Bundles, das mit SeriesMin und SeriesMax festlegt, welche Fassung zu welcher AutoCAD-Version gehört.
Typische Fehler
- Die alte Projektdatei wird weitergeschleppt – Folge: CS0579 und eine Liste rätselhafter Warnungen.
UseWPFundUseWindowsFormsfehlen. Erst gibt es nur MSB3277, spätestens mit eigener Oberfläche einen Fehler.- Eine DLL soll für AutoCAD 2026 und 2027 reichen. Das geht wegen des Binärbruchs nicht.
- Die Einstellungen der Anwender liegen noch im BinaryFormatter-Format und gehen still verloren.
- Alte CSV- oder Stücklisten-Dateien in Windows-1252 werfen eine
NotSupportedException. - Gebaut wird mit Visual Studio 2022. Für AutoCAD 2027 nennt Autodesk Visual Studio 2026.
So helfen wir
- Schulung: In der Schulung „AutoCAD .NET API mit C#“ bauen Sie Ihr Add-in direkt für AutoCAD 2027 und .NET 10. Für BricsCAD gibt es die Schulung „BricsCAD .NET API mit C#“.
- Add-in-Check AutoCAD 2027: Wir sehen uns Ihr Add-in an und sagen Ihnen, was für .NET 10 zu tun ist – von der Projektdatei bis zu den Laufzeitfallen.
- Umstellung als Projekt: Wir stellen Ihr Add-in um, modernisieren es dabei oder begleiten Ihr Team. Vereinbaren Sie ein Erstgespräch.
- Das Buch: Ausführlich steht alles in Ebi F. Eilbers Fachbuch „AutoCAD .NET API“, das voraussichtlich 2027 erscheint.
Quelle: Ebi F. Eilber, AutoCAD .NET API (Fachbuch, erscheint voraussichtlich 2027)
