如何为 .NET Core 控制台应用程序创建独立的可执行文件?
How to create a self-contained executable for a .NET Core Console application?
我想为我的 .NET Core 控制台应用程序创建一个独立的可执行文件,它可以在命令行上 运行 而无需 dotnet
命令。当我尝试使用 dotnet publish -r osx-x64
创建自包含的可执行文件时,会在输出文件夹中创建一个带有项目名称的 .dll
,例如myproject.dll
,而不是 EXE 文件(我假设在 MacOS 上自包含的应用程序是 EXE 文件,就像在 Windows 上一样)。如果不使用 dotnet
命令,我不能直接 运行 myproject.dll
,我必须 运行 dotnet myproject.dll arg1
才能执行程序。
可执行文件在发布文件夹中。在 Windows 中,可执行文件具有 .exe 文件扩展名,而在 Linux 和 OSX(即 MacOS)中,可执行文件没有文件扩展名。
添加到@MyWrathAcademia 的回答...
自包含应用程序不需要目标系统上的 .NET 运行时,并捆绑了它自己的 .NET 运行时。 运行时间相关的应用程序依赖于目标系统上的 .NET 运行时,因此必须使用“dotnet 运行”执行。
有关详细信息,请参阅 here。
我想为我的 .NET Core 控制台应用程序创建一个独立的可执行文件,它可以在命令行上 运行 而无需 dotnet
命令。当我尝试使用 dotnet publish -r osx-x64
创建自包含的可执行文件时,会在输出文件夹中创建一个带有项目名称的 .dll
,例如myproject.dll
,而不是 EXE 文件(我假设在 MacOS 上自包含的应用程序是 EXE 文件,就像在 Windows 上一样)。如果不使用 dotnet
命令,我不能直接 运行 myproject.dll
,我必须 运行 dotnet myproject.dll arg1
才能执行程序。
可执行文件在发布文件夹中。在 Windows 中,可执行文件具有 .exe 文件扩展名,而在 Linux 和 OSX(即 MacOS)中,可执行文件没有文件扩展名。
添加到@MyWrathAcademia 的回答...
自包含应用程序不需要目标系统上的 .NET 运行时,并捆绑了它自己的 .NET 运行时。 运行时间相关的应用程序依赖于目标系统上的 .NET 运行时,因此必须使用“dotnet 运行”执行。
有关详细信息,请参阅 here。