SharpDX v4.0.1 sharpdx_direct3d11_effects_x64.dll DLLNotFoundException

时间:2017-10-03 16:50:11

标签: c# visual-studio nuget sharpdx

去年,我用SharpDX.Direct3D11.Effects.dll 版本3

询问问题how to solve a DllNotFoundException for sharpdx_direct3d11_effects_x64.dll

现在我尝试用版本4 做同样的事情。

我原本期望将两个DLL sharpdx_direct3d11_effects_x64.dll和sharpdx_direct3d11_effects_x32.dll添加到Visual Studio项目中,但它们不是。

enter image description here

这两个DLL的部署机制是否已更改?

2 个答案:

答案 0 :(得分:2)

  

这两个DLL的部署机制是否已更改?

是的,此软件包xoofx的作者已从版本4.0.0-ci120更改了这两个DLL的部署机制。您可以查看关于4.0.0 release notesUpdated D3D11.Effects to the new project system.

此外,您可以下载此软件包的两个版本,使用NuGet Package Explorer检查不同版本:

enter image description here

根据官方文件:Supporting multiple .NET framework versions

  

如果您具有特定于体系结构的程序集,即面向ARM,x86和x64的单独程序集,则必须将它们放在名为{platform}的子文件夹中名为runtimes 的文件夹中 - {architecture} \ lib {framework}或{platform} - {architecture} \ native。

所以部署机制的变化是正确的。

答案 1 :(得分:1)

好的,由于@Leo-MSFT上面的回答,我得到了这个工作。

  1. 我必须下载NuGet package from here.
  2. 重命名为* .zip并解压缩
  3. 将文件夹runtime / win-x64 / sharpdx_direct3d11_1_effects.dll和runtime / win-x86 / sharpdx_direct3d11_1_effects.dll复制到我的项目并设置为Copy Always
  4. 这没有用,所以我现在将win-x64 / sharpdx_direct3d11_1_effects.dll复制到项目根目录并重命名为win-x64 / sharpdx_direct3d11_1_effects_x64.dll并设置为Copy Always并且工作正常。

    enter image description here

    我确信这不是故意的,所以我reported a bug to SharpDX on Github