Udostępnij za pośrednictwem


<> 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>

Zobacz też