The Home repository is the starting point for people to learn about Fody, the project.
Fody is an extensible tool for weaving .net assemblies. It enables the manipulating the IL of an assembly as part of a build requires a significant amount of plumbing code. This plumbing code involves knowledge of both the MSBuild and Visual Studio APIs. Fody attempts to eliminate that plumbing code through an extensible add-in model. This technique is very powerful, for example you can turn simple properties into full INotifyPropertyChanged implementations, add checks for null arguments, add Method Timings, even make all your string comparisons case insensitive.
Fody requires significant effort to maintain. As such it relies on financial contributions from the community and sponsorship to ensure its long term viability. It is expected that all developers using Fody become a Patron on OpenCollective.
Go to licensing FAQ for more information.
Support this project by becoming a Gold Sponsor. A large company logo will be added here with a link to your website.
Support this project by becoming a Silver Sponsor. A medium company logo will be added here with a link to your website.
Support this project by becoming a Bronze Sponsor. The company avatar will show up here with a link to your OpenCollective Profile.
Patrons and sponsors
Thanks to all the backers and sponsors! Support this project by becoming a patron.
Main Fody code repository
The codebase of core Fody engine located at https://github.com/Fody/Fody.
The plumbing tasks Fody handles
- Injection of the MSBuild task into the build pipeline
- Resolving the location of the assembly and pdb
- Abstracts the complexities of logging to MSBuild
- Reads the assembly and pdb into the Mono.Cecil object model
- Re-applying the strong name if necessary
- Saving the assembly and pdb
Fody Uses Mono.Cecil and an add-in based approach to modifying the IL of .net assemblies at compile time.
- No install required to build.
- Attributes are optional depending on the weavers used.
- No runtime dependencies need to be deployed.
Documentation and Further Learning
- Licensing and patron FAQ
It is expected that all developers using Fody become a Patron on OpenCollective. See Licensing/Patron FAQ for more information.
Introduction to using Fody.
All configuration options for Fody.
- Addin discovery
How addins are resolved.
- List of Fody weavers/addins
A GitHub repo that contains a working sample of every Fody addin.
- Common errors
- In solution weaving
Writing an addin that manipulates IL within the same solution.
- ProcessedByFody class
Marker class added to target assemblies for diagnostic purposes.
- Strong naming
- Supported runtimes and IDE
- Addin development
Building a new Fody addin.
- Addin packaging
Packaging and deployment of Fody weavers.
A simple project meant to illustrate how to build an addin.
- Fody Project Configuration Manager
Provides an interactive tool that can support configuring weavers, which is especially helpful in solutions with many projects.
- Backers tracking/info
Every month the Fody project will donate a portion of funding raised to a charity or other cause.
The name "Fody" comes from the small birds that belong to the weaver family Ploceidae.
Thanks to the following