17

MSDeployAPIを使用するPowerShellスクリプトをいくつか作成しています。を使用してアセンブリをロードできます

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Deployment")

場所は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

ただし、Add-Typeを使用してアセンブリをロードできません。アセンブリが見つからず、1つ以上のアセンブリが欠落しているというエラーが表示されます。

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.Web.Deploymentをロードするにはどうすればよいですか?

4

1 に答える 1

25

PowerShell では、事前に定義されたアセンブリの特定のセットのみを部分的/単純な名前で読み込むことができます。完全修飾名を使用してロードする必要があります。次に例を示します。

Add-Type -AssemblyName ('Microsoft.Web.Deployment, Version=7.1.0.0, ' +
                        'Culture=neutral, PublicKeyToken=31bf3856ad364e35')
于 2010-09-01T20:42:02.427 に答える