【发布时间】:2020-10-02 10:45:41
【问题描述】:
我想在我的 Visual Studio 解决方案中导入一个外部 DLL 并运行它的一种方法,但我遇到了一些像这样的依赖错误:
System.MissingMethodException: 'Method not found: 'Microsoft.VisualBasic.MsgBoxResult Microsoft.VisualBasic.Interaction.MsgBox(System.Object, Microsoft.VisualBasic.MsgBoxStyle, System.Object)'.'
或者:
Could not load file or assembly System.Windows.Forms Version=2.0.0.0
取决于被调用的方法。
我有这样的代码:
using external_namespace;
public class MyClass {
public static void Main() {
external_namespace_class.method1();
}
}
我在 Visual Studio 中包含了具有依赖项的程序集 -> 添加引用...
我想我的问题和这个类似:Could not load file or assembly System.Windows.Forms Version=2.0.0.0
如何在没有这些依赖异常的情况下加载和运行任何外部 DLL,或者如何解决它们?
谢谢
【问题讨论】:
-
我想知道你的dll来自哪里,是c#创建的dll文件还是其他来源?另外,您可以检查您当前的dll .net 平台和当前项目.net 平台。
-
我不知道这个dll是不是由c#创建的,我没有构建它,我也没有关于它的其他信息。我已经尝试过使用其他 .net 版本,但也许我做错了,我怎样才能正确尝试使用其他 .net 版本构建和运行这个项目?
-
我建议你需要弄清楚dll。如果是c#创建的,我们可以直接调用。另外,我们需要注意当前平台是否与dll的平台相同。
-
它被标记为“PE32 可执行 (GUI) Intel 80386 Mono/.Net 程序集,适用于 MS Windows”,我可以反编译它并使用 dnSpy 读取 c# 代码,我可以看到所有方法和我可以调用其中的一些而不会出现任何错误,但是对于调用外部方法(如“Microsoft.VisualBasic.Interaction.MsgBox”)的更复杂的方法,我会遇到我提到的错误。因此,如果我可以调用一些“简单”方法而不会出现任何错误,这是否意味着我正在使用正确的 .NET 版本运行它?是不是说它是用c#创建的?
-
我也尝试包含其他依赖 DLL,例如“Microsoft.VisualBasic.Interaction”,但没有帮助
标签: c# windows visual-studio dependencies