Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何运行.Net核心dll?_C#_.net Core - Fatal编程技术网

C# 如何运行.Net核心dll?

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

我已经在Mac上使用
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
自包含部署(包括.net核心运行时在内的所有组件都包含在应用程序中)

  • 从project.json中删除
    “类型”:“平台”
  • 将运行时部分添加到project.json
  • 使用目标操作系统构建
    dotnet构建-r win7-x64
  • 运行生成的
    MyApp.exe
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": {} }
}

您可以使用
dotnet publish
为控制台应用程序生成.exe输出


更多详细信息:

库不是因为没有入口点而无法执行吗?@bjarnestroutrup它是一个控制台应用程序。我把代码放在这里是为了清楚。@HansPassant我明白你的意思,但是“甚至在Mac上”部分呢?如何在Mac上运行内置版本。有了代码,我可以使用
dnx run
运行它。新项目似乎并不总是有projects.json,在这种情况下,您可以根据平台使用发布选项生成独立的可执行文件,请参见此处:侧注;仅当目标操作系统为Windows时,才会生成exe。对于其他操作系统(如Linux),将生成可执行DLL。它仍然有效;但文件扩展名不同。如果DLL不可执行,您可能需要使用
chmod u+x MyApp.DLL
来更正权限。