如何使用 dotnet cli 将多个运行时发布到自定义输出文件夹

Gro*_*fit 5 .net .net-core dotnet-cli

我有一个 csproj 文件,其中包含一些目标运行时,我希望有一个可以运行的单一命令,该命令可以将它们全部构建并将它们放在指定的目录中。像这样的东西:

dotnet publish -c release -o ../../some-dist-folder
Run Code Online (Sandbox Code Playgroud)

如果我运行这个命令,我会得到some-dist-folder很多好东西,但我不确定它是只输出单个运行时还是所有运行时,因为文件夹包含:

|- *.dll
|- Refs
   |- *.dll
|- Runtimes
   |- Lots of folders
Run Code Online (Sandbox Code Playgroud)

所以没有 exe(并不感到惊讶,因为那只是 Windows 的东西)并且运行时似乎包含大量与各种 linux/mac/windows 运行时等相关的文件夹。

但是,如果我要运行:

dotnet publish -c release -r win-x64 -o ../../some-dist-folder
Run Code Online (Sandbox Code Playgroud)

我得到一些 apphost.exe和其他一些文件并且 runtimes 文件夹不见了,所以我想知道我试图一次构建所有东西的前一种方法是否实际上不起作用,我需要为每个平台明确发布,或者我是否需要从输出中手动挑选出我关心的位。

理想情况下,我希望运行类似上面的命令并获得一个输出文件夹,例如:

|- some-dist-folder
   |- win-x64
   |- osx-some-version
   |- some-linux-distro-version
   |- other-runtimes-version
Run Code Online (Sandbox Code Playgroud)

那么我可以在单个命令中接近这个,还是明确地手动运行每个发布更安全?