Powershell の dll の読み込みでエラーが発生しました: Add-Type: ファイルまたはアセンブリ 'WebDriver.dll' またはその依存関係の 1 つを読み込めませんでした。操作はサポートされていません 質問する

Powershell の dll の読み込みでエラーが発生しました: Add-Type: ファイルまたはアセンブリ 'WebDriver.dll' またはその依存関係の 1 つを読み込めませんでした。操作はサポートされていません 質問する

私はSeleniumを以下からダウンロードしてPowerShell使用したいseleniumhttp://www.java2s.com/Code/Jar/s/Downloadseleniumremotedriver2350jar.htmDLL の 1 つをロードしようとすると、エラーが発生しました。誰かが助けてくれることを願っています。

これは私のシステム情報です。

OS Name:                   Microsoft Windows 7 Enterprise
OS Version:                6.1.7601 Service Pack 1 Build 7601
OS Manufacturer:           Microsoft Corporation

これは私の PowerShell 情報です。

PS C:\Users\test\Downloads\selenium-dotnet-2.35.0\net40> $psversiontable

Name                           Value
----                           -----
PSVersion                      4.0
WSManStackVersion              3.0
SerializationVersion           1.1.0.1
CLRVersion                     4.0.30319.18052
BuildVersion                   6.3.9421.0
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion      2.2


PS C:\Users\test\Downloads\selenium-dotnet-2.35.0\net40>

これは、dll をロードしようとしたときに発生したエラーです。

    PS C:\Users\test\Downloads\selenium-dotnet-2.35.0\net40> Add-Type -Path .\WebDriver.dll
    Add-Type : Could not load file or assembly 'file:///C:\Users\test\Downloads\selenium-dotnet-2.35.0\net40\WebDriver.dll' or one of its dependencies. Operation is
    not supported. (Exception from HRESULT: 0x80131515)
    At line:1 char:1
    + Add-Type -Path .\WebDriver.dll
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [Add-Type], FileLoadException
        + FullyQualifiedErrorId : System.IO.FileLoadException,Microsoft.PowerShell.Commands.AddTypeCommand

    PS C:\Users\test\Downloads\selenium-dotnet-2.35.0\net40> [reflection.assembly]::LoadFrom(".\WebDriver.dll")
    Exception calling "LoadFrom" with "1" argument(s): "Could not load file or assembly 'file:///C:\Users\test\WebDriver.dll' or one of its dependencies. The system
    cannot find the file specified."
    At line:1 char:1
    + [reflection.assembly]::LoadFrom(".\WebDriver.dll")
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : FileNotFoundException

    PS C:\Users\test\Downloads\selenium-dotnet-2.35.0\net40> [reflection.assembly]::LoadFrom("WebDriver.dll")
    Exception calling "LoadFrom" with "1" argument(s): "Could not load file or assembly 'file:///C:\Users\test\WebDriver.dll' or one of its dependencies. The system
    cannot find the file specified."
    At line:1 char:1
    + [reflection.assembly]::LoadFrom("WebDriver.dll")
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : FileNotFoundException

    PS C:\Users\test\Downloads\selenium-dotnet-2.35.0\net40> [reflection.assembly]::LoadFrom("C:\Users\test\Downloads\selenium-dotnet-2.35.0\net40\WebDriver.dll")
    Exception calling "LoadFrom" with "1" argument(s): "Could not load file or assembly 'file:///C:\Users\test\Downloads\selenium-dotnet-2.35.0\net40\WebDriver.dll' or
    one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)"
    At line:1 char:1
    + [reflection.assembly]::LoadFrom("C:\Users\test\Downloads\selenium-dotnet-2.35.0 ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : FileLoadException

    PS C:\Users\test\Downloads\selenium-dotnet-2.35.0\net40> [reflection.assembly]::LoadFile("C:\Users\test\Downloads\selenium-dotnet-2.35.0\net40\WebDriver.dll")
    Exception calling "LoadFile" with "1" argument(s): "An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed

 in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. If
    this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more
    information."
    At line:1 char:1
    + [reflection.assembly]::LoadFile("C:\Users\test\Downloads\selenium-dotnet-2.35.0 ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : NotSupportedException

    PS C:\Users\test\Downloads\selenium-dotnet-2.35.0\net40>

ベストアンサー1

インターネットから .DLL をダウンロードした場合、Powershell はデフォルトでそれらを信頼しません。ここでは、次の 2 つのうちのいずれかを実行できます。

  1. コンテンツのブロックを解除します。問題の詳細を説明するガイドただし、基本的には、ダウンロードしたファイルを右クリックして、[プロパティ] を選択し、[全般] タブで [ブロック解除] をクリックするだけです。コマンドUnblock-Fileレットを使用して、PowerShell から直接コンテンツのブロックを解除できます。
  2. 変更する実行ポリシーこれにより、ダウンロードした悪意のあるスクリプトが実行される可能性もあるため、注意してください。

特にあなたの場合は、これを一度だけ実行し、パッケージを信頼しているようなので、信頼できるコンテンツを具体的に確認してブロックを解除する方がよいようです。


編集:それでも解決しない場合は、Powershell がアセンブリと同じバージョンの .NET ランタイムを使用しなかった場合に、このタイプのエラーが発生したことがあります。この質問いくつかのコンテキストでは、Powershell 2.0 は .NET 2 ランタイムを実行し、質問者は一部のアセンブリに .NET 4 を必要としていました。

同じバージョンの PS を使用していないため、結果は異なる可能性がありますが、使用している DLL のランタイムをサポートするために、リンクされた回答に従って構成ファイルを作成/編集してみてください。

おすすめ記事