Delen via


Als u DllImportSearchPath.AssemblyDirectory opgeeft, wordt er alleen in de assembly-directory gezocht.

Als u vanaf .NET 10 opgeeft DllImportSearchPath.AssemblyDirectory als de enige zoekvlag, zoekt de runtime uitsluitend in de assemblymap. Deze wijziging is van invloed op het gedrag van P/Invokes en de NativeLibrary klasse.

Geïntroduceerde versie

.NET 10 Preview 5

Vorig gedrag

Wanneer DllImportSearchPath.AssemblyDirectory opgegeven is als de enige zoekvlag, heeft eerst de runtime de assemblymap doorzocht. Als de bibliotheek niet is gevonden, viel deze terug op het standaardzoekgedrag van het besturingssysteem.

Met de volgende code zou de runtime bijvoorbeeld zoeken in de assemblymap en vervolgens terugvallen op de zoekpaden van het besturingssysteem.

[DllImport("example.dll", DllImportSearchPath = DllImportSearchPath.AssemblyDirectory)]
public static extern void ExampleMethod();

Nieuw gedrag

Wanneer DllImportSearchPath.AssemblyDirectory wordt opgegeven als de enige zoekvlag, zoekt de runtime alleen in de assemblymap. Het maakt geen gebruik van het standaardzoekgedrag van de bibliotheek van het besturingssysteem.

In het vorige codevoorbeeld wordt nu alleen gezocht in de assemblymap naar example.dll. Als de bibliotheek daar niet wordt gevonden, wordt er een DllNotFoundException exception gegenereerd.

Type van brekende verandering

Dit is een gedragsverandering.

Reden voor wijziging

Het terugvalgedrag bij het opgeven van DllImportSearchPath.AssemblyDirectory verwarring veroorzaakte en was inconsistent met het ontwerp van zoekvlagmen. Deze wijziging zorgt voor duidelijkheid en consistentie in gedrag.

Als terugvalgedrag vereist is, vermijdt u het opgeven van een expliciete DllImportSearchPathwaarde. Wanneer er geen parameters zijn opgegeven, zoekt de runtime standaard in de assembly-directory en valt vervolgens terug op het standaard zoekgedrag voor bibliotheken van het besturingssysteem.

Voorbeeld:

[DllImport("example.dll")]
public static extern void ExampleMethod();

Betreffende API's

Zie ook