如何在GitLab中仅选择特定文件/文件夹创建新版本发布?
GitLab中C# .NET项目仅打包指定文件/目录的方法
在GitLab CI/CD配置里,通过artifacts字段就能精准控制要打包的内容,不用把整个分支都打包进去,具体做法分几种场景:
仅打包bin/Debug目录
在你的.gitlab-ci.yml的构建任务中,添加artifacts.paths指定目标目录即可:build: stage: build script: - dotnet build --configuration Debug artifacts: paths: - bin/Debug/ expire_in: 1 week # 可选,设置产物自动过期时间,避免占用存储仅打包指定的构建文件(如exe、dll)
如果只需要特定输出文件,直接列出文件路径即可,比如只打包exe和依赖的dll:build: stage: build script: - dotnet build --configuration Debug artifacts: paths: - bin/Debug/YourApp.exe - bin/Debug/YourApp.dll - bin/Debug/YourApp.pdb # 按需添加调试符号文件打包目录但排除部分文件
要是目标目录里有不需要的文件(比如XML文档、临时配置),可以用exclude字段过滤:build: stage: build script: - dotnet build --configuration Debug artifacts: paths: - bin/Debug/ exclude: - bin/Debug/*.xml - bin/Debug/*.tmp
注意事项
- 确保
dotnet build命令已经成功生成了目标目录或文件,否则GitLab会因为找不到内容而无法生成产物包 - 如果是Release构建,把路径里的
Debug替换成Release即可 - 可以添加
when: on_success确保只有构建成功时才生成产物(默认就是这个行为,可省略)
内容的提问来源于stack exchange,提问作者kalview
相关产品推荐
相关产品推荐

