3ds Max has long offered excellent .NET integration, allowing Maxscript to seamlessly tap into the power of any .NET library. Personally, I’ve made extensive use of .NET features in my own tools.
Previously, 3ds Max relied on the .NET Framework 4.8 and was recently updated to 4.8.1 for the 2025 release. However, with 3ds Max 2026, Autodesk has transitioned to .NET Core 8. This shift brings a more modern foundation but also removes support for certain features from the older framework.
One notable example is the CSharp.CSharpCodeProvider.CompileAssemblyFromSource method, which many scripters used to dynamically compile C# code—eliminating the need to distribute separate DLL files. Unfortunately, this method is no longer supported in .NET Core 8.
As a result, any script that relies on this method will crash in 3ds Max 2026 like this.
-- Error occurred in anonymous codeblock; filename: C:\myscript\awesomescript.mcr; position: 231; line: 18 -- MAXScript MacroScript Error Exception: -- Runtime error: Cannot resolve type: Microsoft.CSharp.CSharpCodeProvider -- MAXScript callstack: -- thread data: threadID:1254
So, what can we do?
The good news is that 3ds Max now provides an alternative: CSharpUtilities.CSharpCompilationHelper, which allows dynamic compilation of C# code in the new environment.
Please visit this link for an example on how to update your scripts using the new approach.
The bad news? If your scripts are affected, they’ll need to be manually updated—there’s no automatic fix for this transition.