Udostępnij za pośrednictwem


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.

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.

Zobacz też