Linux下VS Code构建的C#项目二进制文件位置及单文件生成方法
Linux下C#项目生成独立可执行文件及直接运行方案
一、常规编译后直接运行的方法
如果无需生成单个独立文件,仅想直接运行编译后的二进制,可按以下步骤操作:
- 在项目根目录执行编译命令:
dotnet build -c Release - 编译完成后,可执行文件默认位于
bin/Release/net<你的.NET版本>/目录下(例如bin/Release/net6.0/),文件名与项目名称一致(Linux下为无后缀的可执行文件)。 - 直接运行该文件:
# 进入对应目录后运行 cd bin/Release/net<你的.NET版本>/ ./<项目名称> # 或直接使用绝对路径运行 /path/to/your/project/bin/Release/net<你的.NET版本>/<项目名称>
二、生成单个独立可执行文件(无需系统.NET环境)
要生成能直接在终端运行的单个二进制文件,需使用.NET的自包含发布功能,步骤如下:
- 确认项目目标框架:打开项目的
.csproj文件,确保存在类似以下配置(替换为你实际使用的.NET版本,如net6.0、net7.0):<TargetFramework>net6.0</TargetFramework> - 执行发布命令:在项目根目录运行以下命令(根据你的系统架构调整
-r参数):
参数说明:# 64位Linux平台 dotnet publish -c Release -r linux-x64 --self-contained true /p:PublishSingleFile=true /p:PublishTrimmed=true # 32位Linux平台 # dotnet publish -c Release -r linux-x86 --self-contained true /p:PublishSingleFile=true /p:PublishTrimmed=true # ARM64架构Linux平台 # dotnet publish -c Release -r linux-arm64 --self-contained true /p:PublishSingleFile=true /p:PublishTrimmed=true-c Release:以发布模式编译,生成优化后的生产版本-r <runtime-id>:指定目标运行环境,确保生成的文件适配你的Linux架构--self-contained true:将.NET运行时与程序一起打包,无需系统预先安装.NET环境/p:PublishSingleFile=true:将所有依赖打包为单个可执行文件/p:PublishTrimmed=true:裁剪未使用的代码和库,减小文件体积
- 获取可执行文件:发布完成后,单个可执行文件位于
bin/Release/net<你的.NET版本>/<runtime-id>/publish/目录下(例如bin/Release/net6.0/linux-x64/publish/)。 - 运行:将该文件复制到任意目录,在终端直接执行:
./<项目名称>
内容的提问来源于stack exchange,提问作者mikuNyaKva
相关产品推荐
相关产品推荐

