asp.net-core - 如何从 .NET Core WebAPI 使用/运行 .NET Framework dll/app
问题描述
有没有办法在 .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;
我不想为我的 API 使用 .NET Framework。我不想使用 RabbitMQ 和类似的,因为它需要安装几个组件。我需要在 .NET Core WebAPI 中使用 .NET Framework dll 中的一些方法。我无权访问 .NET Framework dll 代码。
解决方案
事实上,这并非不相容。.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 应该可以帮助您克服任何剩余的困难,因此您可以稍后将您的项目重新定位。
推荐阅读
- google-drive-api - 在 NodeJS 中获取 Google 文档 createdTime - Google Docs API
- javascript - HTML/JS:更改 JavaScript 中的选择选项值
- python - Django,保留全局和本地 STATIC 文件夹
- javascript - JS - 尝试在讨论板上自动点赞
- sharepoint - 我在共享点站点的“所有者”组中,但无法编辑/删除列表
- python - 熊猫比较不同列名和不同形状的2个数据框
- sql - 如何在 sys.dm_* 中选择数据库名称
- amazon-web-services - AWS-。管理 windows/Linux ec2 虚拟机
- excel - 在登录页面将数据输入到 div
- tensorflow - 关于transformers的tensorflow教程中位置编码中i//2的解释