我有一个.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框架。
答案 0 :(得分:1)
简而言之,无法将VB dll集成到.NET Core。大多数本机VB功能不起作用。我的建议是将dll转换为c#。
答案 1 :(得分:0)
.NET Core中的所有内容现在都是NuGet软件包。只需将Microsoft.VisualBasic
软件包从NuGet中添加到您的项目中,您就可以开始使用了。
请介意,您似乎正在使用Microsoft.VisualBasic.Interaction.IIf
方法。 C#语言中有一个等效于该构建的版本:the ?
operator。像这样使用它:
#include <vector>
#include <random>
#include <algorithm>
#include <iterator>
int main() {
std::vector<double> x;
const int n = 10;
std::default_random_engine gen(std::random_device{}());
std::uniform_real_distribution<double> dist(0.0, 1.0);
std::generate_n(std::back_inserter(x), n, [&]{ return dist(gen); });
}
答案 2 :(得分:0)