Excel-DNA version 1.5
A release candidate for the next version of Excel-DNA is now available for testing. Please try out this update, and let me know if you run into any problems or whether you are able to confirm that your add-in still works correctly. I expect to make a final release in a few weeks.
This update includes a completely new implementation of the core marshaling, replacing code that I initially wrote in 2005. I’ve also done some internal refactoring to prepare for supporting the .NET 5+ generation of runtimes. Finally, a few improvements were made to improve add-in load times when many functions are registered. Improved resilience in hostile anti-virus environments were also implemented since the last release.
Modernising the marshaling code has resulted in two notable changes of the minimum requirements for using Excel-DNA.
- Only .NET Framework versions 4.5.2 to 4.8 are supported, and
- Excel 2007 or newer is required, dropping support for the oldest versions of Excel.
If you are updating the NuGet package on a project that currently targets an older version of .NET (e.g. .NET Framework 4.0), you should change the target framework for the project to .NET Framework 4.5.2 or later, before updating the NuGet package. Otherwise you may get one of the following problems:
- The package install script may not run when the new package is installed. This leaves the project with a file called “_UNINSTALLED_xxxxx-AddIn.dna”. In this case, uninstall the ExcelDna.AddIn package, update the project target framework, and then reinstall. You might need to restart Visual Studio to complete the package updates.
- Error messages stating “Error CS0246 – The type or namespace name ‘ExcelDna’ could not be found (are you missing a using directive or an assembly reference?)”. This also indicates that the target framework is not supported and should be updated, after which the errors should be resolved.
Apart from the new minimum requirements, the new release is a highly compatible update and you should not expect any issues or significant behaviour changes after updating.
Thank you to @ittegrat and @augustoproiete for their contributions to this version.
The following prerelease packages are available on NuGet:
Excel-DNA is now registered on the GitHub sponsors program. This lets you sponsor future Excel-DNA development, and also gives access to direct support for your Excel-DNA projects.
Billing for the monthly sponsorship is through your GitHub account, making it easy to add sponsorship of open-source projects to a corporate GitHub account.
If you are using Excel-DNA and would like to see further development and ongoing support, please sign up as a sponsor.
A big thank you to those users who were the first to do so: @PierreYvesR, @terryaney, @mhouldsworth @KoosBusters and one private sponsor.
I’ve set up three levels of monthly sponsorship subscriptions:
- Individual – $14 pm. For power users and developers making add-ins for personal or limited use.
- Team – $170 pm. For smaller development teams in a company, those publishing add-ins externally or using more advanced add-in features.
- Corporate – $170 pm. For larger companies with mission critical applications or multiple development teams.
For the Team and Corporate sponsorship levels I am also available for some monthly direct support sessions to help deal with problems or advise on your add-in projects.
The direct corporate support contracts are available as before, with bespoke agreements and extensive direct support.
Thank you very much to the existing corporate partners who have supported Excel-DNA over the past decade and continue to ensure the project’s viability.
The development work for Excel-DNA will next address two areas:
- Improved support for SDK-style project files and a PackageReference import of the main NuGet package. The newer .NET project templates and build tools are based on the SDK-style project files, so updating to support these even when targeting .NET Framework will be a big step forward. The main hurdle so far has been the install script and build tasks which depend on the older packages.config style NuGet implementation.
- Support for the .NET 5+ generation of runtimes. I’ve made some progress towards the new add-in hosting code required for loading the .NET 5+ runtime, but getting to an implementation that can be supported for the future and work together with existing add-ins still needs a lot of work. The .NET 5+ runtime versions have more limited isolation capabilities, and different versions cannot be loaded side-by-side in the process. This might require us to standardise on a specific version like the .NET 6 Long Term Support release as the single supported .NET 5+ runtime target.
Thank you for your ongoing enthusiasm for Excel-DNA and the super-power combination of .NET and Excel. I look forward to your thoughts and feedback.