With the T4.FileManager you can define into which files T4 generates your code. You are no longer bound to the default behaviour of T4 that generates all the code of the “example.tt” template into a single “example.cs” file. Now you can split your code into the files you want:
- Putting each generated data class into a single code file
- Creating a server and a client component based on a common model
- Distribute generated code to multiple projects within a solution
- Set the file properties (like ResXFileCodeGenerator as CustomTool)
- Update previously generated files
Our documentation offers all the details you need to know to work with T4.FileManager.
Program | Version | Info | File |
---|---|---|---|
Visual Studio | 2022 | since Version 3.0 | T4.FileManager.VisualStudio.ttinclude |
Visual Studio | 2017, 2019 | since Version 3.0 | T4.FileManager.VisualStudio19.ttinclude |
Visual Studio 16.9.x has a bug that prevents you from debugging T4 templates. See this post for an explanation on how to fix it.
Install the nuget package in your project.
Install-Package T4.FileManager.VisualStudio
For more information see documentation.
The execution of the generation remains on the original T4 Text Templates.
There are some user story oriented Reqnroll tests for ensuring that the FileManager is working as expected. Tests for NET Framework are located in the project T4.FileManager.VisualStudio.AcceptanceCriteria and for NET 5+ in T4.FileManager.NetCore.AcceptanceCriteria.
- René Leupold
- Johnny Graber
Pull-requests are welcome! Please follow these rules so that we can integrate your pull-requests without much effort:
- Create an issue and explain the problem with an example
- Reference the issue in your commits / pull-request
- Document the new behavior (in the docs folder)
- Create tests to verify the new behavior
- All existing tests must still pass, including the acceptance tests (in the tests folder)
- Clean-up the commit history
- No fix commits
- Changes that belong together are in the same commit
- All commits have a meaningful commit message
- Keep the code maintainable and focused on the problem you try to solve
- No feature-flags to turn the main logic on or off
- No C# preprocessor directives (like #if DEBUG)
- No modification of the author list (on GitHub and in the NuGet package)
- No changes on the code style and formatting
This project is licensed under the MIT License - see the LICENSE file for details.
- T4 Text Templates
- Json.NET (until version 4.0.0)
Breaking changes to old T4.TemplateFileManager
See section breaking changes of Change log
Link to old T4.TemplateFileManager: https://github.com/renegadexx/T4.Helper.