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?

Était-ce utile?

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
scroll top