dotnet publish
命令发布到项目bin/netcoreapp2.2/Debug/publish
文件夹中。 netcoreapp2.2
可能随dotnet版本而变化,Debug
随-c
参数指定的配置而变化。
出于CI / CD的目的,这显然是不可取的。或者,可以传递-o
来传递一条明确的输出路径,但是同样,在CI / CI环境中,该路径应位于项目文件夹结构内,例如像这样:
dotnet publish -o publish
但是,由于publish命令会聚集所有文件,因此它将拾取以前的发布尝试并以递归方式存储它们。可以通过显式清理publish文件夹和/或为项目的csproj添加a来缓解这种情况,但是现在构建脚本和csproj之间存在依赖关系:如果出于任何原因在构建脚本中更改了发布路径没有相应的csproj更新,事情就会中断。
因此,最不脆弱的选择似乎是使用默认的输出路径,因为那会自动排除在全局之外,但是如何消除版本和配置的敏感性呢?是否有一种特别安全的方法来使dotnet告诉我的CI / CD环境,其构建/发布的输出路径是什么?
答案 0 :(得分:0)
IMP:我的信誉不足,无法添加评论
您可以将相对路径与 -o 选项一起使用,最终避免使用运行时,平台标识来明确显示文件夹名称。
或 为什么不考虑将build命令与发布配置文件一起使用 ,您可以在其中指定显式路径。但通常相对路径不太容易出错。
希望这对您有帮助!