<> NetFx40_PInvokeStackResilience, element
Określa, czy środowisko uruchomieniowe automatycznie naprawia niepoprawne deklaracje wywoływania platformy w czasie wykonywania, kosztem wolniejszych przejść między zarządzanym i niezarządzanym kodem.
<konfiguracji>
<Środowiska wykonawczego>
<NetFx40_PInvokeStackResilience>
Składnia
<NetFx40_PInvokeStackResilience enabled="1|0"/>
Atrybuty i elementy
W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne.
Atrybuty
Atrybut | opis |
---|---|
enabled |
Atrybut wymagany. Określa, czy środowisko uruchomieniowe wykrywa nieprawidłowe platformy wywołuje deklaracje i automatycznie naprawia stos w czasie wykonywania na platformach 32-bitowych. |
Atrybut włączony
Wartość | Opis |
---|---|
0 |
Środowisko uruchomieniowe używa szybszej architektury międzyoperacyjnej wprowadzonej w programie .NET Framework 4, która nie wykrywa i nie naprawia niepoprawnych deklaracji wywołań platformy. Jest to opcja domyślna. |
1 |
Środowisko uruchomieniowe używa wolniejszych przejść, które wykrywają i naprawiają nieprawidłowe deklaracje wywołań platformy. |
Elementy podrzędne
Brak.
Elementy nadrzędne
Element | opis |
---|---|
configuration |
Element główny w każdym pliku konfiguracji używanym przez środowisko uruchomieniowe języka wspólnego i aplikacje programu .NET Framework. |
runtime |
Zawiera informacje dotyczące opcji inicjowania środowiska uruchomieniowego. |
Uwagi
Ten element umożliwia szybsze handel międzyoperacyjności w celu uzyskania odporności czasu wykonywania na niepoprawne deklaracje wywołań platformy.
Począwszy od programu .NET Framework 4, usprawniona architektura międzyoperacyjna zapewnia znaczną poprawę wydajności przechodzenia z kodu zarządzanego do niezarządzanego kodu. We wcześniejszych wersjach programu .NET Framework warstwa marshalling wykryła nieprawidłowe deklaracje wywołań platformy na platformach 32-bitowych i automatycznie naprawiła stos. Nowa architektura marshalling eliminuje ten krok. W związku z tym przejścia są bardzo szybkie, ale niepoprawna deklaracja wywołania platformy może spowodować awarię programu.
Aby ułatwić wykrywanie nieprawidłowych deklaracji podczas programowania, ulepszono środowisko debugowania programu Visual Studio. Asystent debugowania zarządzanego pInvokeStackImbalance (MDA) powiadamia o nieprawidłowych deklaracjach wywołań platformy, gdy aplikacja jest uruchomiona z dołączonym debugerem.
Aby rozwiązać scenariusze, w których aplikacja używa składników, których nie można ponownie skompilować i które mają niepoprawne deklaracje wywołania platformy, możesz użyć NetFx40_PInvokeStackResilience
elementu . Dodanie tego elementu do pliku konfiguracji aplikacji z rezygnacją z enabled="1"
trybu zgodności z zachowaniem wcześniejszych wersji programu .NET Framework kosztem wolniejszych przejść. Zestawy, które zostały skompilowane we wcześniejszych wersjach programu .NET Framework, są automatycznie wybierane w tym trybie zgodności i nie wymagają tego elementu.
Plik konfiguracji
Ten element może być używany tylko w pliku konfiguracji aplikacji.
Przykład
W poniższym przykładzie pokazano, jak wyrazić zgodę na zwiększenie odporności na niepoprawne deklaracje wywołań platformy dla aplikacji, kosztem wolniejszych przejść między zarządzanym i niezarządzanym kodem.
<configuration>
<runtime>
<NetFx40_PInvokeStackResilience enabled="1"/>
</runtime>
</configuration>