Removes instructions/variables from all of the methods in the given input assembly.
The point of this is being it allows developers to generate a "preview" assembly, that is, all of the implementation is removed out.
This tool has been superseded by (official) C# compiler (in 7.1 release).
Therefore I recommend using the official compiler option (-refonly
), the concept is called "Reference-only assembly" (see docs).
And for more information, click here.
This tool is small and easy to use, but I don't know if there is anyone actually making the use of such concept in the wild.
This were supposed to be pushed towards Facepunch devs, for their prototype game called S&Box
, but I don't think I have established this concept back in a day.
As it stands now, you can continue to use this tool, it will remain working for those of who used it without any problems in their build process.
I am closing this project as I believe it is final and stable to use. I no longer have much interest in developing this project any further.
Shutdown.
The main goal of this project is to provide support to 3rd-party .NET developers to build stuff for Your unreleased/internal software, and be ahead of time together.
If the XMLDoc file exists, it will be preserved for the generated assembly, and may be shared directly if you wish to provide original documentation to 3rd-party as well.
If the program is run successful, an output assembly will be named *-preview
.
Linux (with mono
) & Windows OS are both supported.
Here is a small IL/C# inspection of the generated "preview" assembly (Mono.Cecil-preview.dll
):
The generated "preview" assembly enables 3rd-party users to compile their project, but it is not going to run properly (yes, of course, this is normal and does not matter for us at all; the internal software is yet to be released at that point).
Because, a "preview" assembly is meant to be used as a reference for pure advantages of IDE features (such as IntelliSense, XMLDocs, etc).
Once the internal software becomes released, then 3rd-party users would simply just need to update their reference to use non-preview version.
Visit the Contributor Guidelines for more details. All contributors are expected to follow our Code of Conduct.
If you think you have found a bug or have a feature/enhancement request for Fake Implementation, use our issue tracker.
Before opening a new issue, please be kind and search to see if your problem has already been reported. Try to be as detailed as possible in your issue reports.
When creating an issue, clearly explain
- What you were trying to do?
- What you expected to happen?
- What actually happened?
- Steps to reproduce the problem.
Also include any other information you think is relevant to reproduce the problem.
Fake Implementation repository/code is freely distributed under the MIT license. See LICENSE file for more details.
It is made possible thanks to all dnlib
and Mono.Cecil
authors.
CaptainPRICE for developing Fake Implementation.