Exception PowerShell运行时异常-“;无法加载文件或程序集“;

Exception PowerShell运行时异常-“;无法加载文件或程序集“;,exception,powershell,winscp,winscp-net,Exception,Powershell,Winscp,Winscp Net,这似乎是PowerShell和VisualStudio中的常见问题,但案例和解决方案似乎差异很大。虽然看到了几个类似的问题,但我还没有找到解决问题的有效方法 错误消息中存在问题 无法加载文件或程序集 'file:///C:\用户\jenstmar\Desktop\WinSCP.dll'或其 依赖关系。不支持此操作。(HRESULT的例外情况: 0x8013155) 文件位置无效,因为.dll应该与安装位于同一文件夹中。此位置已更改,以检查是否没有权利或缺乏权利限制我使用它 导致问题的脚本行如下所

这似乎是PowerShell和VisualStudio中的常见问题,但案例和解决方案似乎差异很大。虽然看到了几个类似的问题,但我还没有找到解决问题的有效方法

错误消息中存在问题

无法加载文件或程序集 'file:///C:\用户\jenstmar\Desktop\WinSCP.dll'或其 依赖关系。不支持此操作。(HRESULT的例外情况: 0x8013155)

文件位置无效,因为.dll应该与安装位于同一文件夹中。此位置已更改,以检查是否没有权利或缺乏权利限制我使用它

导致问题的脚本行如下所示:

# Load WinSCP .NET assembly
[Reflection.Assembly]::LoadFrom("C:\users\jenstmar\Desktop\WinSCP.dll") | Out-Null

此错误同时出现在PS和ISE(x86)中。我以本地管理员身份在Windows Enterprise 64位环境中运行PowerShell V3.0。如何解决此问题?

文件可能因其来源(存储在中)而被阻止加载。检查属性并查看“取消阻止”小按钮是否亮起。一旦解除阻止,它可能会加载…

我会查看ILDASM或dotPeek中的WinSCP.dll依赖项,然后在加载WinSCP.dll之前加载这些依赖项。问题是,您正在PowerShell.exe(或PowerShell_ise.exe)fusion加载上下文中运行,并且在这两个exe的基本目录下找不到WinSCP.dll的程序集。因此,您需要在CLR加载程序阻塞之前加载依赖程序集,因为它找不到所需的DLL。如果您需要帮助确定找不到哪个程序集,请查看fuslogvw.exe工具

顺便说一句,从PowerShell v2开始,您应该使用
添加类型-Path
而不是[S.R.A]::LoadFrom(…)。

在这种情况下的解决方案: 删除并再次下载所有内容。
我甚至在没有帮助的情况下,在第一个文件中取消了它的阻止。很高兴这是在一台内部机器上进行的。

以下内容对我来说很有用(来自堆栈溢出问题)

在文件中:

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>

如果您看到上述错误,可能是在32位模式(Windows PowerShell ISE(x86))下运行Windows PowerShell ISE的问题。您必须运行Windows PowerShell ISE应用程序

此应用程序(Windows PowerShell ISE)处于64位模式。当我执行powershell命令时,它对我来说工作正常


我一直在尝试用不同类型的解决方案来解决这个问题,但对我来说不起作用。如果运行32位模式,请将其切换到64位并重试

这里还记录了:我的虚拟机的用户目录位于共享驱动器上。我必须首先将文件下载到本地pc,然后移除锁。一旦文件被解锁,请关闭并再次打开powershell,否则它将无法工作。谁认为这将是解决方案:)我已经试了6个小时了。感谢Mark JensterIf PowerShell ISE在解锁时处于打开状态,请关闭并重新打开它。在某些情况下,它似乎会锁定DLL,从而延迟解除阻止操作的发生。这是一个很好的解决方案
Import-Module : Could not load file or assembly 'file:/// *dll path*' or one of 
its dependencies. An attempt was made to load a program with an incorrect format.
At *script path*.ps1:68 char:2
+     Import-Module *module path*
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Import-Module], BadImageFormatException
    + FullyQualifiedErrorId : System.BadImageFormatException,Microsoft.PowerShell.Commands.ImportModuleCommand