Wie verwende ich Add-Typ, um Microsoft.Web.Deployment zu laden?
-
26-09-2019 - |
Frage
Ich schreibe einige PowerShell -Skripte, die die verwenden Msdeploy API. Ich kann die Baugruppe verwenden
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Deployment")
Der Ort ist in der 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
Ich kann die Baugruppe jedoch nicht verwenden Add-Typ. Ich erhalte einen Fehler, der besagt, dass die Baugruppe nicht gefunden werden kann und dass eine oder mehrere Baugruppen fehlen.
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
Wie kann ich mit Add-Type Microsoft.Web.Deployment laden?
Lösung
Mit PowerShell können nur ein bestimmter vordefinierter Satz von Baugruppen durch ihren teilweise/einfachen Namen geladen werden. Sie müssen es über den voll qualifizierten Namen laden, zum Beispiel:
Add-Type -AssemblyName ('Microsoft.Web.Deployment, Version=7.1.0.0, ' +
'Culture=neutral, PublicKeyToken=31bf3856ad364e35')
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow