当前位置: 首页 > 编程语言 > C#

初学ILNumerics:VS2012下安装分享

时间:2023-04-10 19:31:20 C#

初学ILNumerics:VS2012下安装我对ILNUmerics很感兴趣,想试用免费版,但是遇到了麻烦。我启动了一个控制台应用程序并尝试运行“helloilnumerics”控制台应用程序,但我注意到VS找不到MKL库。我在Windwos8下使用VS2012(2010年年中通过Bootcamp在MacBookPro上使用;这有关系);我已经从项目解决方案中安装了NuGet包扩展。然后右击SolutionExplorer中的引用,“ManageNuGetPackages”,在线/搜索各种版本的ilnumerics。我选择“ILNumerics”并安装。我在我的项目中添加了“ILNumerics”和“ILNumerics.Native”。然后,我可以在解决方案资源管理器的“参考”下看到ILNumerics,并获得两个新文件夹/bin32/和/bin64/,它们都包含两个名为libiomp5md.dll和mkl_custom.dll的DLL。我检查了它们的“复制到输出目录”属性,它们都设置为“如果更新则复制”。显然找不到mkl_custom。使用System.Collections.Generic;使用System.Linq;使用系统文本;使用System.Threading.Tasks;使用ILNumerics;namespaceConsoleApplication3{classProgram:ILMath{staticvoidMain(string[]args){ILArrayA=array(newdouble[]{1,1,1,1,1,2,3,4,1,3,6,10,1,4,10,20},4,4);ILArrayB=计数器(4,2);ILArray结果=linsolve(A,B);Console.Out.WriteLine("A:"+Environment.NewLine+A.ToString());Console.Out.WriteLine("B:"+Environment.NewLine+B.ToString());控制台.ReadKey();我得到这个异常:ILNumerics.dll中类型为“System.DllNotFoundException”的未处理异常附加信息:无法加载DLL“mkl_custom”:找不到指定的模块。(HRESULTexception:0x8007007E)如果我不调用linsolve,ILArray的ToString方法会起作用:如果我评论//ILArrayResult=linsolve(A,B);我将两个矩阵打印到屏幕上。我还尝试计算矩阵的行列式并得到相同的异常:显然任何时候我调用mkl_customVS都找不到它。任何帮助/提示?此外,是否有必要在添加到解决方案的任何项目中通过NuGet安装ILNumerics?是否可以在本地安装一次,然后在需要时添加引用?两个选项:1)确保所有二进制文件都可以按预期访问:ILNumerics使用AnyCPU目标并通过在启动时将“bin32”/“bin64”目录添加到PATH环境变量来选择平台依赖子文件夹。您的机器可能出现故障?您可以通过手动将正确的二进制文件(取决于您的平台)直接放入输出路径来确保。2)如果错误仍然存??在:mkl_custom.dll依赖于其他一些dll本身。一个(libiomp5md.dll)随ILNumericsnuget包一起提供。其他应该存在于您的系统上:KERNEL32.DLL和MSVCR110.DLL。确保你有这些!如果缺少内核DLL->奇迹般的重装系统。如果缺少msvcr110->转到此处并安装“VisualC++RedistributableforVisualStudio2012”。如果问题仍然存在,您可能会在ILNumerics错误跟踪器上提交错误,因为运行时应该在那里,并且正如您所写的那样,您正在使用VS2012。也许这是一个版本问题。编辑:从4.0版开始,ILNumerics不再在bin32/bin64/子文件夹中部署本机二进制文件,而是将系统范??围内的所有本机依赖项安装到GAC和System32/WOW文件夹中。尽管如此,旧方案仍然有效(与旧项目兼容)。但是,没有必要显式处理对ILNumerics的任何依赖性。它们应该只在运行时被发现。正如number303所说,ILNumerics.dll找不到所需的依赖项。您可以通过将所需的DLL复制到与ILNumerics.dll相同的目录作为构建后步骤来强制修复此依赖关系,但我认为这是一个更优雅的解决方案。默认情况下,VS2010.NET控制台解决方案是使用x86配置创建的。编译并运行ILNumerics示例你好ILNumerics!使用此配置的代码会导致无法找到DLL(mkl_custom.dll)的异常。通过配置管理器将解决方案重定向到“任何CPU”解决了我的问题:在解决方案资源管理器中,右键单击解决方案并选择属性。选择ConfigurationProperties并单击右上角的ConfigurationManager...按钮。确保为使用ILNumerics的项目选择了“AnyCPU”。如果“AnyCPU”不是一个选项,请从下拉列表中选择“”并根据您当前的平台创建一个“AnyCPU”平台。通常这意味着接受NewProjectPlatform对话框中的默认值。您可能还想修改“活动解决方案平台:”以包含“任何CPU”目标。重建/运行。就我而言,它有助于安装“VisualC++RedistributableforVisualStudio2012”,尽管我使用的是VisualStudio2010并安装了相应的“VisualC++RedistributableforVisualStudio2010”。只要不需要mkl_custom.dll,它就可以正常工作。但是如果没有安装2012Redistributable,我的同事就不会遇到这个问题。以上就是C#学习教程:BeginnerILNumerics:VS2012下安装分享所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处: