Перейти к файлу
Mitchell Hwang 01c5fa4057
FIx area path
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
2022-11-08 10:02:05 -05:00
.config FIx area path 2022-11-08 10:02:05 -05:00
.github Update CODEOWNERS 2021-11-11 12:55:41 -08:00
docs Added IL2121 to error-codes.md (#2964) 2022-08-12 04:34:55 -07:00
eng Enable CodeQL with TSA 2022-11-03 23:15:19 +08:00
external Add support for generic attributes (#2980) 2022-08-23 14:25:58 -04:00
src Don't mark override of abstract base if the override's declaring type is not marked (#3098) 2022-11-02 15:37:46 +00:00
test Don't mark override of abstract base if the override's declaring type is not marked (#3098) 2022-11-02 15:37:46 +00:00
.editorconfig Track attributes through Roslyn-generated types (#2786) 2022-05-23 22:25:27 -07:00
.gitattributes Change line endings to auto (#1885) 2021-03-11 05:53:18 -08:00
.gitignore Ignore .vscode and emacs backup files in root (#2341) 2021-11-03 16:19:18 +01:00
.gitmodules Stop using git protocol for submodule (#2248) 2021-09-02 13:11:43 +02:00
Directory.Build.props Update to .NET 7.0 TFM (#2919) 2022-07-27 11:18:40 -07:00
Directory.Build.targets Remove monolinker build support (#1760) 2021-01-19 08:46:15 +01:00
LICENSE.txt Enable source-build through arcade (#1823) 2021-02-24 12:19:32 +01:00
NuGet.config [main] Update dependencies from dotnet/runtime (#2224) 2021-08-23 15:25:31 +00:00
PATENTS.TXT Create PATENTS.TXT 2016-11-02 20:12:48 -04:00
README.md Update CI status in readme (#3086) 2022-10-27 13:16:41 -07:00
THIRD-PARTY-NOTICES.TXT Files in linker repository now have the same license header at the beginning of the file (#2469) 2022-03-31 15:21:14 -07:00
after.illink.sln.targets Update integration test infrastructure (#507) 2019-03-28 14:41:54 +01:00
build.cmd Add analyzer bootstrap phase (#2540) 2022-01-25 08:59:20 -08:00
build.sh Enable source-build through arcade (#1823) 2021-02-24 12:19:32 +01:00
code_of_conduct.md Fix links to Code of Conduct (#1091) 2020-04-10 23:31:00 +02:00
global.json Update dependencies from https://github.com/dotnet/arcade build 20221024.5 (#3092) 2022-10-31 13:39:44 +00:00
illink.sln Share more intrinsics (#2571) 2022-02-04 16:00:23 -08:00
lint.cmd Fix lint job in CI (#2581) 2022-02-04 03:52:42 -08:00
lint.sh Fix lint job in CI (#2581) 2022-02-04 03:52:42 -08:00

README.md

Trimming Tools

This repository hosts various tools and msbuild tasks which are used when trimming managed applications with .NET 5 and newer.

IL Trimmer

The IL Trimmer is the developer's tool that can be used to produce apps that contain only code and assembly dependencies which are necessary to run the app. It's fully integrated into .NET SDKs via ILLink.Tasks build task and exposed via dotnet publish trimming settings.

The trimmer is always enabled for all size sensitive .NET workloads like Blazor WebAssembly, Xamarin or .NET mobile and can be manually enabled for other project types. The default apps trimming setting can be further customized by using a number of msbuild properties.

Dependencies Analyzer

The analyzer is a tool to analyze dependencies which were recorded during trimmer processing. It tracks details about reasons and connection between elements to keep it in the resulting linked assembly. It can be used to better understand the dependencies between different types and members to help further reduce the linked output.

Trimming Lens

The tlens is another tool for developers which can be used to explore ways to reduce the size of trimmed apps or exploring libraries readiness for trimming. The tool produces a recommendation where the compiled source could be improved to produce even smaller outputs when trimmed using the trimmer.

Source Code Analyzer

Another tool available for developers is implemented as Roslyn Analyzer which runs on source code and warns developers about code patterns and APIs which are problematic when building code which could be used with trimmed apps.

Contributing

We welcome contributions! Many developers have helped make this project better by reporting issues or contributing pull requests.

How to build all projects

There is a shell script available in the root folder which can build the whole project and much more (build.cmd on Windows).

./build.sh

Running tests from CLI

The same script can be used to run all tests from the terminal. We also have integration into Visual Studio and individual tests or whole test suites can be run within IDE as well.

./build.sh -test

CI Build & Test Status

Build Status