<> NetFx40_PInvokeStackResilience – element
Určuje, jestli modul runtime automaticky opraví nesprávné deklarace volání platformy za běhu za cenu pomalejších přechodů mezi spravovaným a nespravovaným kódem.
<Konfigurace>
<Runtime>
<NetFx40_PInvokeStackResilience>
Syntax
<NetFx40_PInvokeStackResilience enabled="1|0"/>
Atributy a elementy
Následující části popisují atributy, podřízené prvky a nadřazené prvky.
Atributy
Atribut | Popis |
---|---|
enabled |
Požadovaný atribut. Určuje, jestli modul runtime rozpozná nesprávné deklarace volání platformy a automaticky opraví zásobník za běhu na 32bitových platformách. |
Atribut enabled
Hodnota | Popis |
---|---|
0 |
Modul runtime používá rychlejší architekturu zařazování komunikace zavedenou v rozhraní .NET Framework 4, která nerozpozná a neopravuje nesprávné deklarace volání platformy. Tato možnost je výchozí. |
1 |
Modul runtime používá pomalejší přechody, které zjišťují a opravují nesprávné deklarace volání platformy. |
Podřízené elementy
Žádné
Nadřazené elementy
Element | Popis |
---|---|
configuration |
Kořenový prvek v každém konfiguračním souboru, který je používán modulem Common Language Runtime (CLR) a aplikacemi rozhraní .NET Framework. |
runtime |
Obsahuje informace o možnostech inicializace modulu runtime. |
Poznámky
Tento prvek umožňuje vyměnit rychlejší zařazování interoperability za účelem odolnosti za běhu proti nesprávným deklaracím volání platformy.
Počínaje rozhraním .NET Framework 4 poskytuje zjednodušená architektura zařazování komunikace významné zlepšení výkonu pro přechody ze spravovaného kódu na nespravovaný kód. V dřívějších verzích rozhraní .NET Framework vrstva zařazování zjistila nesprávné deklarace platformy vyvolání na 32bitových platformách a automaticky opravila zásobník. Nová architektura zařazování tento krok eliminuje. V důsledku toho jsou přechody velmi rychlé, ale nesprávná deklarace vyvolání platformy může způsobit selhání programu.
Abychom usnadnili rozpoznání nesprávných deklarací během vývoje, vylepšili jsme ladicí prostředí sady Visual Studio. Pomocník spravovaného ladění (MDA) pInvokeStackImbalance vás upozorní na nesprávné deklarace vyvolání platformy, když je aplikace spuštěná s připojeným ladicím programem.
Chcete-li vyřešit scénáře, kdy aplikace používá komponenty, které nelze znovu zkompilovat a které mají nesprávné deklarace volání platformy, můžete použít NetFx40_PInvokeStackResilience
element . Přidáním tohoto prvku do konfiguračního souboru aplikace s enabled="1"
se rozhodnete pro režim kompatibility s chováním starších verzí rozhraní .NET Framework za cenu pomalejších přechodů. Sestavení, která byla zkompilována proti dřívějším verzím rozhraní .NET Framework, jsou automaticky přihlášeny do tohoto režimu kompatibility a nepotřebují tento prvek.
Konfigurační soubor
Tento prvek lze použít pouze v konfiguračním souboru aplikace.
Příklad
Následující příklad ukazuje, jak se přihlásit ke zvýšení odolnosti proti nesprávným deklaracím volání platformy pro aplikaci za cenu pomalejších přechodů mezi spravovaným a nespravovaným kódem.
<configuration>
<runtime>
<NetFx40_PInvokeStackResilience enabled="1"/>
</runtime>
</configuration>
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro