Mono.Addins is a generic framework for creating extensible applications, and for creating libraries which extend those applications. For for information about the library, see: http://www.mono-project.com/Mono.Addins Building -------- To build the library execute: ./configure make Options: --prefix=/path/to/prefix Install to the specified prefix --enable-gui Include GUI support for GTK2 (requires gtk#2) --enable-gui-gtk3 Include GUI support for GTK3 (requires gtk#3) --enable-tests Include NUnit tests (requires nunit) Building the samples -------------------- cd to the Samples directory and run make. Running the NUnit tests ----------------------- To run the NUnit tests, you need to configure the build with --enable-tests, cd to Tests, and run 'make test'.
Mono.Addins is a generic framework for creating extensible applications, and for creating add-ins which extend those applications.
Mono.Addins is a generic framework for creating extensible applications, and for creating libraries which extend those applications. For for information about the library, see: http://www.mono-project.com/Mono.Addins Building -------- TCategory: .NET / Application Frameworks |
Watchers: 37 |
Star: 151 |
Fork: 91 |
Last update: Jun 22, 2022 |
…custom localizer is supplied
This should avoid probing for a built-in localizer when a custom one is supplied.
Also, avoid doing stock localizer probing in case it's a custom localizer.
Benchmark determines the Assembly.GetType version is faster: https://github.com/Therzok/BenchPlayground/blob/859851620080f1298f919dd68b4f6c06d1e18705/BenchPlayground/Benchmarks/runtime/GetType.cs https://github.com/Therzok/BenchPlayground/blob/master/BenchPlayground/Benchmarks/runtime/GetType.md
It's no longer possible to build or package this correctly with the makefiles, so clean them up. Remove the changelogs too, as they're outdated and the info is in the git logs. Switch NuGet refs to PackageReference and set up NuGetizer to create package automatically for release builds.
This allows for one addin to initialize the localization engine, and other addins to reuse it.
Fixes VSTS #640900 - Custom translation catalog causes addin assemblies to be loaded on startup
Version 1.3.5 is building correctly but failing to install:
[email protected]:/tmp/slackbuilds/mono-addins/mono-addins-c636f258d0a724e7c0de447ea717d18cb90bfb17# make DESTDIR=/tmp/package-mono-addins install
Making install in Mono.Addins
make[1]: Entering directory '/tmp/slackbuilds/mono-addins/mono-addins-c636f258d0a724e7c0de447ea717d18cb90bfb17/Mono.Addins'
make[2]: Entering directory '/tmp/slackbuilds/mono-addins/mono-addins-c636f258d0a724e7c0de447ea717d18cb90bfb17/Mono.Addins'
/usr/bin/gacutil /i ../bin/Mono.Addins.dll /f /package mono-addins /root /tmp/package-mono-addins/usr/local/lib || exit 1;
Failure adding assembly ../bin/Mono.Addins.dll to the cache: Strong name cannot be verified for delay-signed assembly
Makefile:552: recipe for target 'gac-install' failed
make[2]: *** [gac-install] Error 1
make[2]: Leaving directory '/tmp/slackbuilds/mono-addins/mono-addins-c636f258d0a724e7c0de447ea717d18cb90bfb17/Mono.Addins'
Makefile:429: recipe for target 'install-am' failed
make[1]: *** [install-am] Error 2
make[1]: Leaving directory '/tmp/slackbuilds/mono-addins/mono-addins-c636f258d0a724e7c0de447ea717d18cb90bfb17/Mono.Addins'
Makefile:350: recipe for target 'install-recursive' failed
make: *** [install-recursive] Error 1
Note that DESTDIR is used for linux packing.
This PR adds a new subproject named Mono.Addins.GuiGtk3, which is simply the Gui subproject ported to GTK#3. This is done as part of the #monohack 2013 hackfest effort to port apps to GTK#3, as many of the apps depend on Mono.Addins.Gui. Basically they can now pull in GuiGtk3 instead of Gui, and the API will be identical. (While those using GTK#2 can continue doing so...)
The add-in UI is slightly less pretty than the original and could use a fair bit of polish, but it should be fully functional. There has also been added a Tests project that uses GuiGtk3 to open a GUI for testing purposes.
The makefile setup is altered to allow conditional building of GTK#3 support, which defaults to off since it is not so common yet.
Makes Mono.Addins safe to use from multiple threads. Most internal collections have been converted to immutable, so normal access to the extension tree is lock-free, so it should be fast. Locks are acquired when the tree is built (on demand).
Would be nice to have this, otherwise we can't debug into Mono.Addins:

@slluis Could we also publish the Gui projects as nugets?
Fixed some problems with the original PR https://github.com/mono/mono-addins/pull/149
Mac OS X Catalina left 32 bit applications behind and as a result, I've been exploring updating some code that uses Addins... but I'm finding that it's not discovering it correctly. Run the Sample Code in Addins and see how it behaves running under mono64. It can't find the addins in question.
I've been trying to debug the issue but I haven't been succeeding.
mono-addins-1.3(Aug 3, 2016)
- It is now possible to specify a default insertion point in an extension point. This can be done using two new attributes: defaultInsertBefore and defaultInsertAfter.
- New GetResourceInfo() method in RuntimeAddin. It can be used to get information about how a resource has been persisted.
- Add support for application level add-ins config file. Allows applications to disable shipped add-ins by default.
- New icons in add-in manager.
- Fixed incorrect text format when using the console logger.
- Fixed bug when loading gettext catalog.
mono-addins-1.2(Nov 20, 2014)
This releases has several improvements and bug fixes:
- Fixed bug that caused add-ins to be disabled when being updated.
- Fixed several issues when scanning assemblies.
- When evaluating a condition, ensure that the add-in that implements that condition is loaded. This change requires some new information to be stored in the add-in database, so the db version number has been bumped.
- Fixed assembly resolution bug when running in MS.NET.
- Added GTK3 implementation of the add-in manager.
- Registered repositories are now automatically updated the first time the add-in manager is shown.
mono-addins-1.1(Jan 24, 2014)
This releases has several improvements and bug fixes
- When disabling an add-in, disabled all versions of the add-in
- Allow embedding .addin files into submodule assemblies
- Fixed some issue when scanning dlls
- Added new assembly attributes for defining add-in properties
- Fixed deadlock when loading add-in roots
- Fixed GAC assembly directory search for .net 4.0
- Added support for variables in add-in manifests
- Updated Cecil from upstream