6

当您想使用以下命令从网络UNC共享添加程序集时:

$scriptPath = Split-Path ($MyInvocation.MyCommand.Path)
Add-Type -path "$scriptPath\selenium-dotnet\net40\WebDriver.dll"

你可能会遇到这样的错误:

Add-Type: Could not load file or assembly 'file:///Z:\A-Backup\Users\Administr
ator\Desktop\MAXIMO Automatic\selenium-dotnet\net40\WebDriver.dll' or one of it
s dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515
)
At Z:\A-Backup\Users\Administrator\Desktop\MAXIMO Automatic\MAXIMO Automatic.ps
1:14 char:1
+ Add-Type -path "$scriptPath\selenium-dotnet\net40\WebDriver.dll"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Add-Type], FileLoadException
    + FullyQualifiedErrorId : System.IO.FileLoadException,Microsoft.PowerShell
   .Commands.AddTypeCommand

我该如何解决这个问题?

4

3 回答 3

10

关键是允许从PowerShell 可执行文件的网络路径加载程序集。可以通过创建两个文件来完成

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe.config C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe.config

并粘贴此代码:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration>
   <runtime>
      <loadFromRemoteSources enabled="true"/>
   </runtime>
</configuration>
于 2013-11-13T15:05:37.483 回答
4

回复:外星地震的。我已将您的修复程序添加到 PS 脚本中,以将文件安装在正确的位置。

$PSPaths = 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe.config','C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe.config'
$XMLCode = @"
<?xml version="1.0" encoding="utf-8" ?> 
<configuration>
   <runtime>
         <loadFromRemoteSources enabled="true"/>
    </runtime>
</configuration>
"@
foreach($PSConfigFile in $PSPaths) {
    $xmlcode | Out-File -FilePath $PSConfigFile -Encoding utf8 
}
于 2015-01-16T19:51:50.593 回答
3

而不是Add-Type你可以:

[System.Reflection.Assembly]::UnsafeLoadFrom('\\uncpath\driver.dll')

它会忽略一些安全设置并加载库,但它是不安全的;)。

于 2017-06-30T13:28:06.333 回答