libClang.dll DllNotFoundException

问题描述 投票:0回答:1

你好!

我正在尝试在 Visual Studio 可扩展性项目中使用“CppAst.Net”块,到目前为止,在经典 C# 项目中执行此操作时一切正常,但在 VSX 项目中尝试时出现运行时错误:“System. DllNotFoundException:“无法加载 DLL 'libclang' 或其依赖项之一:找不到模块”。

这里有一些重现步骤:

  • 使用 VisualStudio.Extensibility 扩展模板创建一个新项目
  • 安装“CppAst”块(此处版本0.16.0)
  • 在文件“command1.cs”和方法“ExecuteCommandAsync”中粘贴此解析示例:

var compilation = CppParser.Parse(@"enum MyEnum { MyEnum_0, MyEnum_1 }; void function0(int a, int b); struct MyStruct { int field0; int field1;};typedef MyStruct* MyStructPtr;");

  • 运行扩展并单击命令(命令位于此处:扩展 -> 示例远程命令)

这里还有一些其他信息:

  • 查看两个项目设置后,它们看起来相同且相同的目标框架(.NET 8.0)。
  • 检查 CallStack 时,对 libClang.dll 的调用启动工作正常(CppAst.dll 和 ClangSharp.Interlop.dll)。
  • 检查 bin 文件夹时,每个 dll 都存在。

我开始没有办法让它发挥作用了。

exception dll visual-studio-extensions vsx libclang
1个回答
0
投票

据我所知,devenv.exe是基于.net框架的。如果您创建 vsx 项目,它也应该基于 .net 框架。你遇到的情况应该是因为包和项目不兼容,这也是普通类库项目没有问题的原因。 cppast 包本身是 .net 8.0 的包。

© www.soinside.com 2019 - 2024. All rights reserved.