【问题标题】:How do I use Add-Type to load Microsoft.Web.Deployment?如何使用 Add-Type 加载 Microsoft.Web.Deployment?
【发布时间】:2010-09-01 20:25:28
【问题描述】:

我正在编写一些使用 MSDeploy API 的 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 加载程序集。我收到一条错误消息,提示找不到程序集并且缺少一个或多个程序集。

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?

【问题讨论】:

  • 你有没有得到这个工作?

标签: powershell powershell-2.0 msdeploy


【解决方案1】:

PowerShell 仅允许通过其部分/简单名称加载某些预定义的程序集集。您将需要通过其完全限定名称来加载它,例如:

Add-Type -AssemblyName ('Microsoft.Web.Deployment, Version=7.1.0.0, ' +
                        'Culture=neutral, PublicKeyToken=31bf3856ad364e35')

【讨论】:

  • 为什么?我不知道我想多久做一次。如果只有一个 add-type -gac microsoft.some.assembly 来加载最新版本,就像我们为 Visual Studio 所做的那样,那就太容易了。
  • 你总是可以通过路径加载Add-Type -Path C:\Windows\Microsoft.NET\assembly\GAC_64\System.Web\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Web.dll
  • 是的,但这很烦人,你必须去寻找路径和东西。我很容易创建一个函数来自动执行此操作并将其放入我的个人资料中,但我有点惊讶微软没有这样做。哦,也许下一个版本。也许我应该在某个地方向他们推荐它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多