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

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

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

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

  • 146 appsettings.deploy.json
  • 186 appsettings.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 ТестЯмл
  • 632 TestYaml.pdb
  • 146 TestYaml.runtimeconfig.json

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

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

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

2 ответа

Решение

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

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

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

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

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

Пожалуйста, проверьте эту ветку и документ для получения более подробной информации.

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

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

Другие вопросы по тегам