Powershell load dll получил ошибку: Add-Type: не удалось загрузить файл или сборку " WebDriver.dll " или одна из его зависимостей. Операция не поддерживается

Я хочу использовать PowerShell С selenium и скачать селен из http://www.java2s.com/Code/Jar/s/Downloadseleniumremotedriver2350jar.htm . Когда я пытаюсь загрузить одну из библиотек DLL, я получаю ошибки. Надеюсь, кто-то может мне помочь.

Это моя системная информация.

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

Это моя информация PowerShell.

PS C:UserstestDownloadsselenium-dotnet-2.35.0net40> $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:UserstestDownloadsselenium-dotnet-2.35.0net40>

Это ошибки, которые я получил при попытке загрузить dll.

    PS C:UserstestDownloadsselenium-dotnet-2.35.0net40> Add-Type -Path .WebDriver.dll
    Add-Type : Could not load file or assembly 'file:///C:UserstestDownloadsselenium-dotnet-2.35.0net40WebDriver.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:UserstestDownloadsselenium-dotnet-2.35.0net40> [reflection.assembly]::LoadFrom(".WebDriver.dll")
    Exception calling "LoadFrom" with "1" argument(s): "Could not load file or assembly 'file:///C:UserstestWebDriver.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:UserstestDownloadsselenium-dotnet-2.35.0net40> [reflection.assembly]::LoadFrom("WebDriver.dll")
    Exception calling "LoadFrom" with "1" argument(s): "Could not load file or assembly 'file:///C:UserstestWebDriver.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:UserstestDownloadsselenium-dotnet-2.35.0net40> [reflection.assembly]::LoadFrom("C:UserstestDownloadsselenium-dotnet-2.35.0net40WebDriver.dll")
    Exception calling "LoadFrom" with "1" argument(s): "Could not load file or assembly 'file:///C:UserstestDownloadsselenium-dotnet-2.35.0net40WebDriver.dll' or
    one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)"
    At line:1 char:1
    + [reflection.assembly]::LoadFrom("C:UserstestDownloadsselenium-dotnet-2.35.0 ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : FileLoadException

    PS C:UserstestDownloadsselenium-dotnet-2.35.0net40> [reflection.assembly]::LoadFile("C:UserstestDownloadsselenium-dotnet-2.35.0net40WebDriver.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:UserstestDownloadsselenium-dotnet-2.35.0 ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : NotSupportedException

    PS C:UserstestDownloadsselenium-dotnet-2.35.0net40>

2 ответов


Если вы скачали .Dll из интернета, Powershell по умолчанию не будет доверять им. Вы можете сделать одну из двух вещей:

  1. разблокировать контент. Вот руководство с некоторой проработкой проблемы, но по существу вам просто нужно щелкнуть правой кнопкой мыши на загруженном файле, выбрать Свойства и нажать "разблокировать" на вкладке "Общие". Вы можете разблокировать содержимое непосредственно из powershell, используя .
  2. изменить выполнение политики. Это также может позволить запускать вредоносные скрипты, которые вы загружаете, поэтому будьте осторожны.

в частности, просмотр и разблокировка контента, которому Вы доверяете, кажется лучшим маршрутом, особенно для вашего случая, поскольку вы, похоже, делаете это только один раз, и Вы доверяете пакету.


Edit: если это не решило этого, другой опыт, который у меня был с этим типом ошибки, - это когда Powershell не то же самое версия .Объем выполнения сборки. См.этот вопрос для некоторого контекста, где Powershell 2.0 запускал среду выполнения .NET 2, а asker требовал .NET 4 для некоторых сборок.

вы не используете одну и ту же версию PS, поэтому ваш пробег может отличаться, но я бы попытался создать/отредактировать файл конфигурации для связанного ответа для поддержки среды выполнения используемых DLL.


это сработало для меня: (от https://stackoverflow.com/a/19957173/107161)

в файлы:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.исполняемый.config C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell - ... исполняемый.config

<?xml version="1.0" encoding="utf-8" ?> 
<configuration>
   <runtime>
      <loadFromRemoteSources enabled="true"/>
   </runtime>
</configuration>