loadFromContext MDA
Feljegyzés
Ez a cikk a .NET-keretrendszer vonatkozik. Ez nem vonatkozik a .NET újabb implementációira, beleértve a .NET 6-os és újabb verzióit.
A loadFromContext
felügyelt hibakeresési segéd (MDA) akkor aktiválódik, ha egy szerelvény betöltődik a LoadFrom
környezetbe. Ez a helyzet hívás vagy más hasonló módszer eredményeként Assembly.LoadFrom fordulhat elő.
Hibajelenségek
Egyes betöltőmetszetek használata a szerelvények betöltését eredményezheti a LoadFrom
környezetben. Ennek a környezetnek a használata váratlan viselkedést eredményezhet szerializálás, casting és függőségfeloldás esetén. Általában ajánlott a szerelvényeket a környezetbe betölteni, hogy elkerüljük ezeket a Load
problémákat. Nehéz meghatározni, hogy az MDA nélkül melyik környezetbe lett betöltve egy szerelvény.
Ok
A rendszer általában akkor tölt be egy szerelvényt a LoadFrom
környezetbe, ha a környezeten kívüli Load
elérési útról, például a globális szerelvény-gyorsítótárból vagy a AppDomainSetup.ApplicationBase tulajdonságból lett betöltve.
Resolution (Osztás)
Olyan alkalmazásokat konfiguráljon, amelyek LoadFrom már nem igényelnek hívásokat. Ehhez az alábbi technikákat használhatja:
Szerelvények telepítése a globális szerelvény-gyorsítótárba.
Helyezze a szerelvényeket a ApplicationBase könyvtárba a AppDomain. Az alapértelmezett tartomány esetében a ApplicationBase könyvtár tartalmazza a folyamatot elindító végrehajtható fájlt. Ehhez szükség lehet egy új AppDomain létrehozására is, ha nem kényelmes áthelyezni az szerelvényt.
Adjon hozzá egy próbaútvonalat az alkalmazáskonfigurációs (.config) fájlhoz vagy a másodlagos alkalmazástartományokhoz, ha a függő szerelvények gyermekkönyvtárakban találhatók a végrehajtható fájlhoz képest.
A kód minden esetben módosítható a Assembly.Load metódus használatára.
Effektus a futtatókörnyezetre
Az MDA-nak nincs hatása a CLR-re. A jelentés a terhelési kérelem eredményeként használt környezetet jelenti.
Hozam
Az MDA jelentése szerint a szerelvény be lett töltve a LoadFrom
környezetbe. Megadja a szerelvény egyszerű nevét és az elérési utat. Emellett megoldásokat is javasol a LoadFrom
környezet használatának elkerülése érdekében.
Konfiguráció
<mdaConfig>
<assistants>
<loadFromContext />
</assistants>
</mdaConfig>
Példa
Az alábbi példakód egy olyan helyzetet mutat be, amely aktiválhatja ezt az MDA-t:
using System.Reflection;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// The following call caused the LoadFrom context to be used
// because the assembly is loaded using LoadFrom and the path is
// located outside of the Load context probing path.
Assembly.LoadFrom(@"C:\Text\Test.dll");
}
}
}
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: