在Mac或Windows上运行.NET Core控制台应用程序

16

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

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

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

1个回答

13
你需要创建一个独立应用程序。该链接解释了如何修改您的project.json来实现这一点。
另请注意,虽然独立应用程序不依赖于.Net Core,但它可能具有其他依赖项。特别是在OSX上,我认为您需要从homebrew安装特定版本的openssl。

谢谢!我已经成功编译并执行了我的项目。有没有办法删除我不需要的dll文件?例如,Microsoft.CodeAnalysis.VisualBasic.dll。我想要一个更小的版本。在发布后,我的小应用程序会得到一个46 MB的文件夹 :) - dknaack
@dknaack .Net Core的即将发布的版本应该会自动处理这个问题。 目前,您可以使用实际需要的依赖项替换对 Microsoft.NETCore.App 的依赖。例如,对于一个简单的Hello World应用程序,必要的依赖关系似乎是 "Microsoft.NETCore.Runtime.CoreCLR": "1.0.3", "Microsoft.NETCore.DotNetHostPolicy": "1.0.1", "System.Console": "4.0.0" - svick
太好了!有了你的建议和 http://packagesearch.azurewebsites.net/,我成功实现了目标并将大小减半。 - dknaack
5
你介意分享一下你是如何在Mac上执行你在Windows上创建的项目的吗?你使用了什么命令?我找到的所有文档都是关于如何发布应用程序,但没有一个展示如何在Mac上运行这个便携式应用程序。 - myfunnyfella
1
@dknaack 最终,如果您使用的是.NET Core 3.0预览版6或更高版本,则可以通过将以下内容添加到您的csproj中来自动修剪它:<PublishTrimmed>true</PublishTrimmed> 或通过控制台添加到您的dotnet发布命令 /p:PublishTrimmed=true (当然,在任何情况下都需要对PublishSingleFile执行相同操作)。 - Mark Z.
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接