GOOGLE ADS

lundi 2 mai 2022

Enregistrer DLL dans GAC (CMD ou PowerShell)

J'essaye d'enregistrer un .DLLdans le GAC. Actuellement, j'ai du mal à prouver qu'il a été ajouté à l'assemblage.

Utilisation de la commande

C:\Windows\System32>%programfiles(x86)%\Microsoft SDKs\Windows\v7.0A\Bin\gacutil.exe -i "path\to\my\file.dll"

L'invite m'indique que l'assembly a été ajouté au cache.

Lors de la vérification avec

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin>gacutil.exe -l file.dll

Il dit qu'il y a 0 éléments dans l'assemblage.

Via Powershelldes commandes, j'essaie d'ajouter DLLceci :

PS C:\WINDOWS\system32> Add-Type -AssemblyName "System.EnterpriseServices"


PS C:\WINDOWS\system32> $publish = Nouvel objet System.EnterpriseServices.Internal.Publish


PS C:\WINDOWS\system32> $publish.GacInstall("file.dll")

Qu'ai-je fait de mal? Comment puis-je ajouter le .DLLau GAC? La meilleure façon (pour moi) serait de le faire avec Powershell.


Solution du problème

N'oubliez pas d'exécuter PowerShell en tant qu'administrateur, sinon cela ne fonctionnera pas.

$dllpath = c:\path\yourdll.dll
[System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
$publish = New-Object System.EnterpriseServices.Internal.Publish
$publish.GacInstall($dllpath)

Vous devrez probablement redémarrer tout service ou programme connexe après cela, par exemple :

if (Get-Service "YourService" -ErrorAction SilentlyContinue)
{
Stop-Service -Name 'YourService'
Start-Service -Name 'YourService'
}

Ou redémarrez simplement votre ordinateur.

Aucun commentaire:

Enregistrer un commentaire

Comment utiliseriez-vous .reduce() sur des arguments au lieu d'un tableau ou d'un objet spécifique ?

Je veux définir une fonction.flatten qui aplatit plusieurs éléments en un seul tableau. Je sais que ce qui suit n'est pas possible, mais...