如何运行.Net Core dll?
Posted
技术标签:
【中文标题】如何运行.Net Core dll?【英文标题】:How to run a .Net Core dll? 【发布时间】:2016-04-09 12:36:56 【问题描述】:我已经在我的 Mac 上使用 dnu build
命令构建了我的控制台应用程序。输出为MyApp.dll
。
由于不是MyApp.exe
,我如何在windows甚至Mac上执行它?
代码是:
using System;
class Program
public static void Main()
Console.WriteLine("Hello from Mac");
【问题讨论】:
库不是因为没有入口点而无法执行吗? @BjarneStroustrup 这是一个控制台应用程序。为了清楚起见,我放了代码。 ***.com/a/30377175/17034 @HansPassant 我明白你的意思,但是“甚至在 Mac 上”部分呢?如何在 Mac 上运行构建版本。有了代码,我可以使用dnx run
运行它。
【参考方案1】:
将此添加到您的 project.json 文件中:
"compilationOptions":
"emitEntryPoint": true
,
它会生成Windows上的MyApp.exe(在bin/Debug中)或其他平台上的可执行文件。
编辑:2017 年 1 月 30 日
这已经不够了。您现在可以在依赖框架的部署和自包含部署之间进行选择,如 here 所述。
短格式:
依赖框架的部署(.net 核心存在于目标系统上)
使用 dotnet 命令行实用程序dotnet MyApp.dll
运行 dll
自包含部署(包括 .net 核心运行时在内的所有组件都包含在应用程序中)
从 project.json 中删除"type": "platform"
将运行时部分添加到 project.json
使用目标操作系统构建dotnet build -r win7-x64
运行生成MyApp.exe
project.json 文件:
"version": "1.0.0-*",
"buildOptions":
"emitEntryPoint": true
,
"frameworks":
"netcoreapp1.0":
"dependencies":
"Microsoft.NETCore.App":
"version": "1.0.1"
,
"imports": "dnxcore50",
"runtimes": "win7-x64":
【讨论】:
新项目似乎并不总是有projects.json,在这种情况下,您可以使用发布选项根据平台生成独立的可执行文件,请参见此处:***.com/questions/44074121/… 旁注;仅当目标操作系统是 Windows 时才会构建 exe。对于其他操作系统(例如 Linux),将生成一个可执行的 DLL。它仍然可以工作;但具有不同的文件扩展名。如果 DLL 不可执行,您可能需要使用chmod u+x MyApp.dll
来更正权限。【参考方案2】:
您可以使用dotnet publish
为您的控制台应用程序生成 .exe 输出。
更多详情:Publish .NET Core apps with the CLI
【讨论】:
以上是关于如何运行.Net Core dll?的主要内容,如果未能解决你的问题,请参考以下文章
win10电脑运行cmd提示api-ms-win-core-console-l2-2-0.dll 丢失,怎么怎么办呢