У меня есть файл csproj, который содержит несколько целевых сред выполнения, и я надеялся получить единственную команду, которую я мог бы запустить, которая соберет их все и поместит в назначенный каталог. Примерно так:
dotnet publish -c release -o ../../some-dist-folder
Если я запускаю эту команду, я получаю some-dist-folder
, полный хороших вещей, но я не уверен, выводит ли она только одну или все среды выполнения, поскольку папка содержит:
|- *.dll
|- Refs
|- *.dll
|- Runtimes
|- Lots of folders
Так что нет никакого exe (не удивительно, что это только вещь для Windows), и Runtime, похоже, содержит множество папок, относящихся к различным средам исполнения linux / mac / windows и т. Д.
Однако, если я должен был бежать:
dotnet publish -c release -r win-x64 -o ../../some-dist-folder
Я получаю некоторые apphost.exe
и некоторые другие файлы, а папка среды выполнения пропала, поэтому мне остается задаться вопросом, не работает ли на самом деле прежний подход, когда я пытаюсь просто собрать все сразу, и мне нужно явно опубликовать для каждой платформе или, если мне нужно, вручную выбрать нужные биты из вывода.
В идеале я надеялся запустить команду, подобную приведенной выше, и получить выходную папку, например:
|- some-dist-folder
|- win-x64
|- osx-some-version
|- some-linux-distro-version
|- other-runtimes-version
Так можно ли приблизиться к этому в одной команде или просто безопаснее вручную явно запускать каждую публикацию?