Конвейер сборки 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