【问题标题】:PowerShell Script Load AseembliesPowerShell 脚本加载程序集
【发布时间】:2013-08-22 05:42:02
【问题描述】:

我有一个基于项目构建新 TFS 构建定义的 powershell 脚本。我使用 PowerGUI 脚本编辑器运行脚本,脚本运行良好。但是,当我尝试在 Wondows PowerShell 中运行相同的脚本时,我收到程序集加载错误。

new-object:找不到类型 [Microsoft.TeamFoundation.Client.TfsTeamProjectCollection]:确保程序集 包含此类型的已加载。

为什么会发生这种行为以及需要做什么才能使用 WindowsPowerShell 运行 powershell 脚本?

【问题讨论】:

    标签: powershell


    【解决方案1】:

    应该和这个dll相关联:

    C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.TeamFoundation.Client.dll

    它应该位于与 VS 2010 类似的位置。一种解决方案是使用 Add-Type 将其加载到当前会话:

    Add-Type -Path "$FilePath\Microsoft.TeamFoundation.Client.dll"
    

    此解决方案可能更可取,因为您的脚本将始终检查该 dll,并且它不应该跨环境中断。您对问题的描述听起来好像脚本非常依赖您的环境,并且依赖 PowerGUI 才能正确执行。

    根据您运行的 powershell 控制台的版本,this question 提供了更多关于从不同版本的 .NET 运行程序集的建议。您的 Powershell 控制台版本可能是针对与 dll 不同的 .NET 版本编译的,如果是这种情况,您将不得不回答该问题并按照程序创建配置文件以使您的控制台工作与其他版本的 .NET。我建议使用this answer 作为您的示例。

    【讨论】:

    • Add-Type -Path "$FilePath\Microsoft.TeamFoundation.Client.dll" 为我工作。我以不同的方式加载程序集,它适用于 PowerGUI 应用程序,但不适用于 Windows PowerShell 控制台。
    猜你喜欢
    • 2018-03-24
    • 2020-07-14
    • 1970-01-01
    • 1970-01-01
    • 2017-05-11
    • 2020-12-02
    • 2023-01-11
    • 1970-01-01
    • 2012-10-07
    相关资源
    最近更新 更多