【问题标题】:Running a .NET Core Console Application on Mac or Windows在 Mac 或 Windows 上运行 .NET Core 控制台应用程序
【发布时间】:2019-09-22 04:51:34
【问题描述】:

我创建了一个 .NET Core 控制台应用程序。我想构建应用程序,以便我可以在 Windows 或 MacOS 上执行它,而无需在机器上安装 dotnet core。所以我需要例如对于 windows 一个 exe。

我已阅读https://docs.microsoft.com/de-de/dotnet/articles/core/tools/dotnet-publish 并且知道如何为不同平台编译应用程序。

但是没有创建可执行文件。我在这里缺少什么以及如何实现我的目标?

【问题讨论】:

    标签: c# windows macos .net-core


    【解决方案1】:

    您需要创建一个self-contained application。该链接解释了如何准确地修改您的 project.json 来做到这一点。

    另请注意,虽然自包含应用程序不依赖于 .Net Core,但它可能具有其他依赖项。特别是在 OSX 上,我相信您需要从 homebrew 安装特定版本的 openssl。

    【讨论】:

    • 谢谢!我能够编译我的项目并执行它。有什么方法可以删除我不需要的 dll 吗?例如有一个 Microsoft.CodeAnalysis.VisualBasic.dll 。我想要一个更小尺寸的版本。发布后,我为我的小应用程序获得了一个 46 MB 的文件夹 :)
    • @dknaack A coming version of .Net Core should handle that automatically. 现在,您可以将Microsoft.NETCore.App 的依赖替换为您实际需要的依赖。例如,对于一个简单的 Hello World 应用程序,必要的依赖项似乎是 "Microsoft.NETCore.Runtime.CoreCLR": "1.0.3", "Microsoft.NETCore.DotNetHostPolicy": "1.0.1", "System.Console": "4.0.0"
    • 太棒了!在您的建议和packagesearch.azurewebsites.net 的帮助下,我能够归档我的目标并将大小减半。
    • 您介意分享一下您是如何在 Mac 上执行您在 Windows 上创建的项目的吗?你用了什么命令?我找到的所有文档都说明了如何发布,但没有一个说明如何在 mac 上运行便携式应用程序。
    • @dknaack 最后,如果您使用的是 .NET Core 3.0 Preview 6 或更高版本,则可以通过将其添加到您的 csproj 来自动修剪它:true 或通过控制台添加到您的 dotnet 发布命令 /p:PublishTrimmed=true (当然无论哪种情况都需要对 PublishSingleFile 执行相同操作)
    猜你喜欢
    • 2019-02-10
    • 2020-10-27
    • 2019-06-28
    • 2019-01-26
    • 1970-01-01
    • 2018-02-26
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    相关资源
    最近更新 更多