【问题标题】:Why when compiling .NET Core console application we end up with both dll and exe files?为什么在编译 .NET Core 控制台应用程序时我们会同时得到 dll 和 exe 文件?
【发布时间】:2020-04-09 00:46:06
【问题描述】:

我注意到在编译 .NET Core 控制台应用程序时,会在 Windows 上创建带有项目名称的 dll 和 exe 文件。这是为什么?在完整的 .Net 框架中,只会创建 exe 文件。

【问题讨论】:

    标签: .net-core console-application


    【解决方案1】:

    在 .Net Core 3.0 之前,仅创建了 dll(尽管您仍然可以构建依赖于平台的单个文件)。在这些情况下,您必须使用命令 dotnet MyProject.dll 来启动您的程序。

    在 .Net Core 3.0 中,他们添加了 exe,它实际上仍然只是上面命令的包装。在其他操作系统上,它也会创建一个可执行文件,只是将其命名为 MyProject 而不是 MyProject.exe

    如果人们有仍然使用 dotnet 命令的旧脚本,此设置不会破坏它们,但如果您只想使用 exe,您也可以这样做。

    【讨论】:

    • 官方文档中有描述这种行为的地方吗?
    • @mark 我想这可能是你在docs.microsoft.com/en-us/dotnet/core/whats-new/…之后的样子
    • @mark for .net core 您实际上可以将所有包元数据放在 csproj 文件中,而不是创建单独的 nuspec 文件。然后,您可以使用 dotnet pack 命令生成包。此外,您可以将 csproj 中的 属性设置为 Library。这将删除exe。最后,您可能不需要将 netcoreappx.y 定位为 nuget 包。实际上,以 netstandard2.0 或 netstandard2.1 为目标更好,因为这样您的包将适用于任何兼容的框架。 docs.microsoft.com/en-us/dotnet/standard/net-standard
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 2011-04-16
    相关资源
    最近更新 更多