【发布时间】:2019-06-19 09:20:24
【问题描述】:
dotnet publish 命令发布到项目bin/netcoreapp2.2/Debug/publish 文件夹中。其中netcoreapp2.2 可能随 dotnet 版本而变化,Debug 随 -c 参数指定的任何配置而变化。
对于 CI/CD 而言,这显然是不可取的。或者,可以通过-o 传递显式输出路径,但同样,在 CI/CI 环境中,此路径应该在项目文件夹结构内,例如类似:
dotnet publish -o publish
但是,因为发布命令会收集所有文件,所以它会选择以前的发布尝试并递归地存储它们。这可以通过显式清理发布文件夹和/或将 a 添加到项目的 csproj 来缓解,但现在构建脚本和 csproj 之间存在依赖关系:如果构建脚本中的发布路径因任何原因而更改如果没有相应的 csproj 更新,事情就会中断。
因此,最不脆弱的选项似乎是使用默认输出路径,因为那会自动从 globbing 中排除,但是如何删除版本和配置敏感性?有没有一种特别安全的方法可以让 dotnet 告诉我的 CI/CD 环境其构建/发布的输出路径是什么?
【问题讨论】:
标签: .net-core continuous-integration gitlab-ci