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 по умолчанию не будет доверять им. Вы можете сделать одну из двух вещей:
- разблокировать контент. Вот руководство с некоторой проработкой проблемы, но по существу вам просто нужно щелкнуть правой кнопкой мыши на загруженном файле, выбрать Свойства и нажать "разблокировать" на вкладке "Общие". Вы можете разблокировать содержимое непосредственно из powershell, используя .
- изменить выполнение политики. Это также может позволить запускать вредоносные скрипты, которые вы загружаете, поэтому будьте осторожны.
в частности, просмотр и разблокировка контента, которому Вы доверяете, кажется лучшим маршрутом, особенно для вашего случая, поскольку вы, похоже, делаете это только один раз, и Вы доверяете пакету.
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>