C# 如何运行.Net核心dll?
我已经在Mac上使用C# 如何运行.Net核心dll?,c#,.net-core,C#,.net Core,我已经在Mac上使用dnu build命令构建了控制台应用程序。输出为MyApp.dll 由于它不是MyApp.exe,如何在windows甚至Mac上执行它 代码是: using System; class Program { public static void Main() { Console.WriteLine("Hello from Mac"); } } 将以下内容添加到project.json文件: "compilatio
dnu build
命令构建了控制台应用程序。输出为MyApp.dll
由于它不是MyApp.exe
,如何在windows甚至Mac上执行它
代码是:
using System;
class Program
{
public static void Main()
{
Console.WriteLine("Hello from Mac");
}
}
将以下内容添加到project.json文件:
"compilationOptions": {
"emitEntryPoint": true
},
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.1"
}
}
}
},
"imports": "dnxcore50",
"runtimes": { "win7-x64": {} }
}
它将在Windows上生成MyApp.exe(在bin/Debug中)或在其他平台上生成可执行文件
编辑日期:2017年1月30日
这已经不够了。您现在可以在依赖于框架的部署和自包含的部署之间进行选择,如下所述
简表:
依赖于框架的部署(目标系统上存在.net core)
- 使用dotnet命令行实用程序运行dll
dotnet MyApp.dll
- 从project.json中删除
“类型”:“平台”
- 将运行时部分添加到project.json
- 使用目标操作系统构建
dotnet构建-r win7-x64
- 运行生成的
MyApp.exe
"compilationOptions": {
"emitEntryPoint": true
},
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.1"
}
}
}
},
"imports": "dnxcore50",
"runtimes": { "win7-x64": {} }
}
您可以使用
dotnet publish
为控制台应用程序生成.exe输出
更多详细信息:库不是因为没有入口点而无法执行吗?@bjarnestroutrup它是一个控制台应用程序。我把代码放在这里是为了清楚。@HansPassant我明白你的意思,但是“甚至在Mac上”部分呢?如何在Mac上运行内置版本。有了代码,我可以使用
dnx run
运行它。新项目似乎并不总是有projects.json,在这种情况下,您可以根据平台使用发布选项生成独立的可执行文件,请参见此处:侧注;仅当目标操作系统为Windows时,才会生成exe。对于其他操作系统(如Linux),将生成可执行DLL。它仍然有效;但文件扩展名不同。如果DLL不可执行,您可能需要使用chmod u+x MyApp.DLL
来更正权限。