Właściwość TrimmerDefaultAction
MSBuild jest przestarzała
Wartość TrimmerDefaultAction
właściwości jest teraz ignorowana przez proces publikowania.
Poprzednie zachowanie
Wcześniej tylko zestawy, które zostały wybrane <IsTrimmable>true</IsTrimmable>
w pliku projektu biblioteki, zostały przycięte z akcją określoną przez TrimmerDefaultAction
. W programie .NET 6 wartość domyślna dla tej właściwości to copy
. Chociaż aplikacje z ostrzeżeniami przycinania były bardziej narażone na pracę z tą wartością domyślną, nadal może mieć to wpływ na zachowanie czasu wykonywania. Ponadto akcja spowodowała copy
, że aplikacje były większe niż wtedy, gdy cała aplikacja została przycięta.
Nowe zachowanie
Począwszy od platformy .NET 7, właściwość TrimmerDefaultAction
jest ignorowana i publikowanie zachowuje się tak, jakby była ustawiona na link
cały czas. Oznacza to, że wszystkie zestawy są w pełni przycięte, niezależnie od tego, czy są one gotowe, czy nie. W związku z tym aplikacje z ostrzeżeniami przycinania mogą widzieć zmiany w zachowaniu lub wyjątkach czasu wykonywania. Aby uzyskać więcej informacji i instrukcje dotyczące przywracania poprzedniego zachowania, zobacz Wszystkie zestawy przycinane domyślnie.
Wprowadzona wersja
.NET 7
Typ zmiany powodującej niezgodność
Ta zmiana może mieć wpływ na zgodność źródła.
Przyczyna wprowadzenia zmiany
Ta zmiana usprawnia opcje przycinania.
Zalecana akcja
Najlepszym rozwiązaniem jest rozwiązanie wszystkich ostrzeżeń dotyczących przycinania w aplikacji. Aby uzyskać informacje na temat rozwiązywania ostrzeżeń we własnych bibliotekach, zobacz Wprowadzenie do ostrzeżeń dotyczących przycinania. W przypadku innych bibliotek skontaktuj się z autorem, aby poprosić o rozwiązanie ostrzeżeń lub wybrać inną bibliotekę, która już obsługuje przycinanie. Na przykład można przełączyć się na System.Text.Json za pomocą generowania źródła, który obsługuje przycinanie, zamiast Newtonsoft.Json
. W przypadku tej biblioteki nie należy już używać elementu TrimmerDefaultAction
.
Aby przywrócić poprzednie zachowanie, użyj polecenia global.json
, aby przypiąć projekt do zestawu .NET 6 SDK.