dll 中的方法抛出 System.MissingMethodException:找不到方法

Method in dll throwing System.MissingMethodException: Method not found

我有一个 .NET Core 2.0 Web API,显然是用 C# 构建的。我有一个从 VB dll 调用 void 函数的方法,当我 运行 这个函数调用的程序抛出以下异常时。

System.MissingMethodException: Method not found: 'System.Object Microsoft.VisualBasic.Interaction.IIf(Boolean, System.Object, System.Object)'

我已经在 GAC 上注册了 dll,除了 .dll 文件之外,我还引用了项目本身,即使如此,Visual Studio 也不让我调试它。

使用 Visual Studio 2017,.NET Core 2.0 Framework。

.NET Core 中的一切现在都是 NuGet 包。只需将 Microsoft.VisualBasic 包从 NuGet 添加到您的项目中,您就可以开始了。

请注意,您似乎在使用 Microsoft.VisualBasic.Interaction.IIf method. There is an equivalent to that build right into the C# language: the ? operator。像这样使用它:

var myVariable = something == "A" ? "Equals A" : "Doesn't equal A"

简而言之,无法将 VB dll 集成到 .NET Core。大多数本机 VB 功能不起作用。我的建议是将 dll 翻译成 c#。

IIf 转换为 If

示例:IIF(SomeCondition, "A", "B")IF(SomeCondition, "A", "B")

参考:VB.NET Ternary Operator