Comment utiliser l'ajout pour charger Microsoft.Web.Deployment?
-
26-09-2019 - |
Question
J'écris des scripts PowerShell qui utilisent le Msdeploy API. Je peux charger l'assemblage en utilisant
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Deployment")
L'emplacement est dans le GAC:
PS > [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Deployment") | fl Location
Location : C:\Windows\assembly\GAC_MSIL\Microsoft.Web.Deployment\7.1.0.0__31bf3856ad364e35\Microsoft.Web.Deployment.dll
Cependant, je ne suis pas en mesure de charger l'assemblage en utilisant Type complément. Je reçois une erreur disant que l'assemblage ne peut être trouvé et qu'un ou plusieurs assemblages sont manquants.
PS > Add-Type -AssemblyName Microsoft.Web.Deployment
Add-Type : Cannot add type. The assembly 'Microsoft.Web.Deployment' could not be found.
At line:1 char:9
+ Add-Type <<<< -AssemblyName Microsoft.Web.Deployment
+ CategoryInfo : ObjectNotFound: (Microsoft.Web.Deployment:String) [Add-Type], Exception
+ FullyQualifiedErrorId : ASSEMBLY_NOT_FOUND,Microsoft.PowerShell.Commands.AddTypeCommand
Add-Type : Cannot add type. One or more required assemblies are missing.
At line:1 char:9
+ Add-Type <<<< -AssemblyName Microsoft.Web.Deployment
+ CategoryInfo : InvalidData: (:) [Add-Type], InvalidOperationException
+ FullyQualifiedErrorId : ASSEMBLY_LOAD_ERRORS,Microsoft.PowerShell.Commands.AddTypeCommand
Comment puis-je utiliser le type add pour charger Microsoft.Web.Deployment?
La solution
PowerShell permet uniquement à un certain ensemble d'assemblages prédéfinis par leur nom partiel / simple. Vous devrez le charger via son nom entièrement qualifié, par exemple:
Add-Type -AssemblyName ('Microsoft.Web.Deployment, Version=7.1.0.0, ' +
'Culture=neutral, PublicKeyToken=31bf3856ad364e35')
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow