在Visual Studio的Windows窗体应用程序中使用AForge类没有任何问题。我现在正尝试在Windows PowerShell中使用它们。
[Reflection.Assembly]::LoadFile('C:\Program Files\AForge.NET\IPLab\References\AForge.NET\AForge.Imaging.dll')提供:
GAC Version Location
--- ------- --------
False v2.0.50727 C:\Program Files\AForge.NET\IPLab\References\AForge.NET\AForge.Imaging.dll它显示v2.0.50727,即使AForge.Imaging.dll文件版本和产品版本都是2.2.4.0。但是执行以下命令来实例化一个AForge.Imaging.UnmanagedImage对象$umi (其中$bmdata是一个Drawing.BitMapData对象)没有问题:
$umi = new-object Aforge.Imaging.UnmanagedImage $bmdata但是当我试图访问$umi对象时,例如$umi.GetType(),我得到了以下错误:
The following exception occurred while retrieving member "GetType": "Could not load file or assembly 'AForge, Version=2.2.4.0, Culture=neutral, PublicKeyToken=c1db6ff4eaa06aeb' or one of its dependencies. The system cannot find the file specified."
At line:1 char:13
+ $umi.GetType <<<< ()
+ CategoryInfo : NotSpecified: (:) [], ExtendedTypeSystemException
+ FullyQualifiedErrorId : CatchFromBaseGetMember会出什么问题呢?谢谢。
发布于 2012-08-30 21:41:43
"AForge.Imaging.dll“库依赖于也必须加载的以下库;
Add-Type -AssemblyName "System.Drawing"
Add-Type -Path "E:\AForge.dll"
Add-Type -Path "E:\AForge.Math.dll"
Add-Type -Path "E:\AForge.Imaging.dll"运行以下PowerShell命令以列出当前加载的程序集,并验证是否具有所需的位。
[appdomain]::currentdomain.getassemblies() | sort -property fullname | format-table fullname以下是我的结果:
FullName
--------
AForge, Version=2.2.4.0, Culture=neutral, PublicKeyToken=c1db6ff4eaa06aeb
AForge.Imaging, Version=2.2.4.0, Culture=neutral, PublicKeyToken=ba8ddea9676ca48b
AForge.Math, Version=2.2.4.0, Culture=neutral, PublicKeyToken=abba2e25397ee8c9
Microsoft.PowerShell.Commands.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Microsoft.PowerShell.Commands.Management, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Microsoft.PowerShell.Commands.Utility, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Microsoft.PowerShell.ConsoleHost, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Microsoft.PowerShell.Security, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Microsoft.WSMan.Management, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Configuration.Install, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
System.Management, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
System.Management.Automation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089我可以确认这对我是有效的。
发布于 2012-08-21 14:42:03
运行Process Monitor并检查它正在查找的程序集及其位置。可能是找不到AForge.NET所需的某个程序集,也可能是某些安全限制。有时,如果您尝试将32位版本的DLL加载到64位powershell中,也会出现类似的问题,反之亦然
发布于 2015-02-04 16:06:35
在调用函数的项目中安装aforge.video -以下是nuget控制台Install-Package AForge.Video -Project "ProjectNameFromWhichAforgeFunctionCalls“-Version 2.2.4.0的语法
这解决了我的问题
https://stackoverflow.com/questions/12036518
复制相似问题