如何使用 VSIX 扩展实现控制台应用程序

How to implement Console app with VSIX Extension

我正在使用 C# Keras.Models.Model.LoadModel(path + "issue_classifier_w2vec_new.h5"); 加载 .H5 机器学习模型。此加载应该在按钮的单击事件上执行(通常是通过 VSIX 扩展添加的菜单按钮)。

当我在 visual studio 2019 年 运行 一个新的控制台应用程序时,它 运行 非常完美。但是当我 运行 在 VSIX 项目或 btn click 事件中使用相同的代码时,它显示 BadImageFormatExceptionPython 运行time异常。我认为无法在实验性 window 中找到 python 的环境(通过执行将安装扩展的 VSIX 项目打开的 window)

我认为执行 python 库必须有一个控制台,但在单击按钮时无法加载。如果可能,请帮助我。谢谢!

在涵盖 BadImageFormatException class.

的文档中有一些关于此异常的非常详细的信息

我见过的最常见的情况是调用应用程序和 DLL 不是针对同一体系结构构建的。 VS IDE (devenv.exe) 是一个 32 位应用程序,因此我怀疑您正试图在 64 位特定程序集中加载或调用代码。

我尝试加载的 ML 模型(Keras .h5 模型)基于 64 位。我尝试加载的地方(visual studio 中的.vsix 项目)是一个基于 32 位 only 的 vsix 插件项目。 这就是为什么我无法将模型加载到 vsix 项目中的原因。同样是 BadImageFormatException.

的原因

如果不降级或升级(匹配)两个版本是不可能做到这一点的。