如何从.NET Core WebAPI使用/运行.NET Framework dll / app

时间:2019-05-13 15:33:11

标签: asp.net-core asp.net-core-webapi

是否可以在.NET Core WebAPI中运行/使用.NET Framework app / dll?我知道.NET Core无法与.NET Framework配合使用,所以我在问某种解决方法。

我已经尝试过从WebAPI打开的.NET Framework Console App,但是我不确定这是否是个好主意。它无法随时运行,特别是当两个用户尝试同时运行它时。

string path = hostingEnvironment.ContentRootPath + exePath;
string json = ConvertToBase64(object);

Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.FileName = path;
p.StartInfo.Arguments = json;
p.StartInfo.RedirectStandardOutput = true;
p.Start();

string output = p.StandardOutput.ReadToEnd();

p.WaitForExit();

return output;

我不想将.NET Framework用于我的API。我不想使用RabbitMQ和类似的软件,因为它需要安装几个组件。 我需要使用.NET Core WebAPI中.NET Framework dll中的某些方法。我无权访问.NET Framework dll代码。

1 个答案:

答案 0 :(得分:1)

实际上,它不是不兼容的。 .NET Core支持.NET Standard 2.0,它具有足够广泛的API覆盖范围,因此也支持.NET Framework中的大多数功能。主要的例外是显而易见的:Windows专用的API显然不能跨平台使用,这意味着它们不能在.NET Core中使用。

这样,您的问题的答案是另一个问题:.NET Framework库到底在做什么?您可以从.NET Core项目添加对库的引用,但是会收到警告消息,提示它们可能无法正常工作。然后由您确定它们是否起作用,如果一切正常,则可以消除警告。

如果有问题,则可以选择以.NET Framework为目标,而不是.NET Core。在定位.NET Framework时,您仍然可以使用ASP.NET Core。您只是将与Windows捆绑在一起,而无法部署跨平台。不过,这甚至对您来说都不是问题。此外,这可能只是暂时的情况。一旦发布,.NET Core 3.0应该会帮助您解决所有剩余的难题,因此有可能您以后可以将项目重新定位到该项目。