Как использовать Add-Type для загрузки Microsoft.Сеть.Развертывание?
Я пишу некоторые сценарии PowerShell, которые используют средства msdeploy API-интерфейс. Я могу загрузить сборку через
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Deployment")
находится в GAC:
PS > [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Deployment") | fl Location
Location : C:WindowsassemblyGAC_MSILMicrosoft.Web.Deployment.1.0.0__31bf3856ad364e35Microsoft.Web.Deployment.dll
однако я не могу загрузить сборку с помощью Add-Type. Я получаю сообщение об ошибке, что сборка не может быть найдена и что одна или несколько сборок отсутствуют.
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
как я могу использовать Add-Type для загрузки Microsoft.Сеть.Развертывание?
1 ответов
PowerShell позволяет загружать только определенный заранее определенный набор сборок по их частичному / простому имени. Вам нужно будет загрузить его через полное имя, например:
Add-Type -AssemblyName ('Microsoft.Web.Deployment, Version=7.1.0.0, ' +
'Culture=neutral, PublicKeyToken=31bf3856ad364e35')