Azure конвейер сборки Devops не собирает исполняемые файлы - PullRequest
0 голосов
/ 19 апреля 2020

Я настраиваю azure конвейер сборки со следующим Yaml

enter image description here

Этот проект представляет собой простое консольное приложение hello world, написанное на c#. net core 3.1

Когда я строю или публикую sh этот проект локально, я получаю следующий вывод:

  • 146 appsettings.deploy. json
  • 186 настроек приложений. json
  • 416 TestYaml.deps. json
  • 4.608 TestYaml.dll
  • 171.520 TestYaml.exe
  • 656 TestYaml.pdb
  • 154 TestYaml.runtimeconfig. json

Однако опубликованные артефакты через конвейер сборки дают мне следующие файлы:

  • 140 appsettings.deploy. json
  • 179 appsettings. json
  • 394 TestYaml.deps. json
  • 4.608 TestYaml.dll
  • 86.424 TestYaml
  • 632 TestYaml.pdb
  • 146 TestYaml.runtimeconfig. json

Таким образом, здесь размеры файлов меньше, и, что более важно, TestYaml.exe является отсутствует и заменяется файлом TestYaml.

Это должно быть довольно просто, но я не вижу, чего не хватает.

Заранее спасибо за помощь!

Ответы [ 2 ]

1 голос
/ 20 апреля 2020

Azure конвейер сборки Devops не создает исполняемые файлы

Это потому что:

Исполняемые файлы не являются кроссплатформенными . Они указываются c для операционной системы и архитектуры процессора. При публикации вашего приложения и создании исполняемого файла вы можете опубликовать sh приложение как автономное или зависящее от времени выполнения .

Таким образом, оно сгенерирует .dll вместо .exe файла при сборке / publi sh проекта с ubuntu агентом. Этот файл DLL работает на всех платформах, которые поддерживаются средой выполнения. net (windows, linux, macOS).

Чтобы создать файл .exe, вы можете указать целевую среду выполнения в аргументах -r win-x64 или просто сменить агента на windows.

Пожалуйста, отметьте этот поток и документ для некоторых дополнительных деталей.

Надеюсь, это поможет.

1 голос
/ 19 апреля 2020

Проблема в том, что вы локально работаете на Windows и Azure DevOps на Ubuntu. Если вы измените свой пул на windows-latest, вы получите exe-файл. Пожалуйста, посмотрите здесь - Build. NET Базовое консольное приложение для вывода EXE

...