dotnet 发布输出文件夹?

Chr*_*cke 6 continuous-integration gitlab-ci .net-core

dotnet publish发布到项目bin/netcoreapp2.2/Debug/publish文件夹中的命令。其中netcoreapp2.2可能随 dotnet 版本而Debug变化,并随-c参数指定的任何配置而变化。

对于 CI/CD 目的,这显然是不可取的。或者,可以传递-o显式输出路径,但同样,在 CI/CI 环境中,此路径应位于项目文件夹结构内,例如:

dotnet publish -o publish
Run Code Online (Sandbox Code Playgroud)

但是,因为发布命令会搜索所有文件,所以它会选择以前的发布尝试并递归地存储它们。这可以通过显式清理发布文件夹和/或向项目的 csproj 添加 a 来缓解,但现在构建脚本和 csproj 之间存在依赖关系:如果构建脚本中的发布路径因任何原因更改如果没有相应的 csproj 更新,事情就会中断。

因此,最不脆弱的选项似乎是使用默认输出路径,因为它会自动从 globbing 中排除,但是如何删除版本和配置敏感性?有没有一种特别安全的方法让 dotnet 告诉我的 CI/CD 环境它的构建/发布输出路径是什么?

小智 2

IMP:我没有足够的声誉来添加评论

参考:dotnet发布

您可以使用带有-o选项的相对路径,最终可能会显式避免使用运行时平台标识的文件夹名称。

或者为什么不考虑使用带有发布配置文件的构建命令,您可以在其中指定显式路径。但一般来说相对路径不太容易出错。

希望这可以帮助你!