.NET Embedding 0.4 release notes

Getting Started | What's New | Known Issues | Blogs | Feedback | Open Source

What's new in this release

Objective-C tooling via NuGet

In 0.4 we've moved to unify the Objective-C tools with the Java/C tooling in a single NuGet.

This replaces the previous installer that installed to:

/Library/Frameworks/Xamarin.Embeddinator-4000.framework/

Detailed instructions on how to move to the NuGet packaged tools have been posted.

Xamarin.Mac bundling format change

In 0.4 libraries targeting Xamarin.Mac (not just "raw" macOS) join Xamarin.iOS in both defaulting to and only supporting "framework" style packaging. The other formats (static and dynamic library) have systemic usability issues with dependencies.

The new getting started for macOS has been updated to use frameworks.

Release history

  • April 18, 2017 - .NET Embedding 0.4

Objective-C support

  • 405 - Handle "Interfaces within interfaces" in generated code
  • 484 - Native Exception Handling Support
  • 561 & 641 - Arrays of enums and structures now generate more correct bindings
  • 604 - Resolve compile issues when targetting Xamairn.Mac "System" Target Framework
  • 610 - Restrict use of "auto" and "static" in selector names
  • 610 - Skip with warning selectors that would duplicate in generated code
  • 613 - Fix compiler errors related to local variable names used for parameter conversion.
  • 619 - Improve help to show macos-[modern|full|system] platforms
  • 627 - Default to and enforce framework style packaging
  • 632 - Improve F# support

Java support

  • 542 - Improved overload generation for Java methods
  • 573 - Fix code generation of long literals in enums

Android support

  • 527 - Support for latest Android Studio 3.0
  • 532 - Added missing Xamarin.Android MonoPackageManager.setContext method
  • 616 - Manually load monosgen-2.0 library to support API < 18

Windows support

  • 506 - Improved support for finding Mono SDK on Windows

Linux support

  • 500 - Improved support for Linux platforms

Other features and fixes

  • 503 - We now provide an API for setting Mono runtime assembly paths

Known issues

  • There are a number of documented limitations to consider.
  • In some rare cases the generator produces duplicate symbols, which will fail to compile. Please file an issue on github if this occurs.
  • There are a number C# features that are not supported currently. Consider exposing a simplified subset of managed code.

Feedback welcome

We'd love to hear from you! If there are any problems with this release, check GitHub for existing issues.

Report new issues and suggestions on GitHub.

Open source

.NET Embedding is based on the following open-source repositories:

A big Thank You! to the following folks that helped to make the Embeddinator-4000 even better: