Methode IHostAssemblyStore::P rovideAssembly
Hiermee haalt u een verwijzing op naar een assembly waarnaar niet wordt verwezen door de ICLRAssemblyReferenceList die wordt geretourneerd door IHostAssemblyManager::GetNonHostStoreAssemblies. De Common Language Runtime (CLR) roept ProvideAssembly
aan voor elke assembly die niet in de lijst wordt weergegeven.
Syntaxis
HRESULT ProvideAssembly (
[in] AssemblyBindInfo *pBindInfo,
[out] UINT64 *pAssemblyId,
[out] UINT64 *pHostContext,
[out] IStream **ppStmAssemblyImage,
[out] IStream **ppStmPDB
);
Parameters
pBindInfo
[in] Een verwijzing naar een AssemblyBindInfo-exemplaar dat de host gebruikt om bepaalde bindingskenmerken te bepalen, waaronder de aanwezigheid of afwezigheid van een versiebeleid en met welke assembly verbinding moet worden gemaakt.
pAssemblyId
[uit] Een verwijzing naar een unieke id voor de aangevraagde assembly voor deze IStream
.
pHostContext
[uit] Een verwijzing naar hostspecifieke gegevens die worden gebruikt om het bewijs van de aangevraagde assembly te bepalen zonder dat er een platform-aanroep nodig is. pHostContext
komt overeen met de HostContext eigenschap van de beheerde Assembly klasse.
ppStmAssemblyImage
[uit] Een aanwijzer naar het adres van een IStream
die de draagbare uitvoerbare installatiekopieën (PE) bevat die moeten worden geladen, of null als de assembly niet kan worden gevonden.
ppStmPDB
[uit] Een aanwijzer naar het adres van een IStream
die de PDB-gegevens (program debug) bevat, of null als het .pdb-bestand niet kan worden gevonden.
Retourwaarde
HRESULT | Beschrijving |
---|---|
S_OK | ProvideAssembly is geretourneerd. |
HOST_E_CLRNOTAVAILABLE | De CLR is niet geladen in een proces of de CLR bevindt zich in een status waarin beheerde code niet kan worden uitgevoerd of de aanroep kan worden verwerkt. |
HOST_E_TIMEOUT | Er is een time-out opgetreden voor het gesprek. |
HOST_E_NOT_OWNER | De beller is niet de eigenaar van het vergrendelingsslot. |
HOST_E_ABANDONED | Een gebeurtenis is geannuleerd terwijl er een geblokkeerde thread of vezel op wachtte. |
E_FAIL | Er is een onbekende catastrofale fout opgetreden. Wanneer een methode E_FAIL retourneert, is de CLR niet meer bruikbaar binnen het proces. Volgende aanroepen naar hostingmethoden retourneren HOST_E_CLRNOTAVAILABLE. |
COR_E_FILENOTFOUND (0x80070002) | De aangevraagde assembly kan niet worden gevonden. |
E_NOT_SUFFICIENT_BUFFER | De buffergrootte die is opgegeven door pAssemblyId is niet groot genoeg om de id te bevatten die de host wil retourneren. |
Opmerkingen
De id-waarde die wordt geretourneerd voor pAssemblyId
wordt opgegeven door de host. Id's moeten uniek zijn binnen de levensduur van een proces. De CLR gebruikt deze waarde als een unieke id voor de stream. Elke waarde wordt gecontroleerd op basis van de waarden die pAssemblyId
worden geretourneerd door andere aanroepen naar ProvideAssembly
. Als de host dezelfde pAssemblyId
waarde retourneert voor een andere IStream
, controleert de CLR of de inhoud van die stream al is toegewezen. Als dat het zo is, laadt de runtime de bestaande kopie van de installatiekopie in plaats van een nieuwe toe te voegen.
Vereisten
Platforms: Zie Systeemvereisten.
Header: MSCorEE.h
Bibliotheek: Opgenomen als een resource in MSCorEE.dll
.NET Framework versies: beschikbaar sinds 2.0