C# win7 VS2017 出现不能加载DLL“libtensorflow.dll”

我项目程序在Win10+VS2017环境下开发,最终程序需要打包迁移在Win7上运行,有些电脑安装成功,有些电脑总是报错如下: 

C# win7 VS2017 出现不能加载DLL“libtensorflow.dll”_第1张图片

出现此问题的原因:

 

请记住,VS中,nuget版本1.7.0以上TensorFlowSharp版本的libtensorflow.dll是x64,并且是使用AVX支持编译的(如果OS /处理器不支持AVX,您可能会收到HRESULT异常:0xC000001D  - 非法指令)

解决方案:

第一种方案:降低TensorFlowSharp版本;(个人认为,该解决思路不明智,所以没有采用这个思路)

第二种方案:

我花了很多时间尝试在vs2017上构建这个库但是有一些阻止它的编译器错误。 我发现最好的是:

去这里:https://github.com/fo40225/tensorflow-windows-wheel/

查找你的python版本的tf 1.x,然后是cpu / gpu,然后是sse或avx

下载whl文件,可以7zip打开后,找到
 tensorflow-1.x.0.data \ purelib \ tensorflow \ python \

并将_pywrap_tensorflow_internal.pyd重命名为libtensorflow.dll

请注意,这个'dll'至少依赖于python3.dll和python3x.dll

可以用工具:适用于 VS 2017 的 x64 本机工具命令提示 或dependency Walker 检测一下该libtensorflow.dll依赖的dll,一起放在程序exe目录下,打包程序。

你可能感兴趣的:(C#,Python,Tensorflow)