Azure Devops生成管道不会生成可执行文件

时间:2020-04-19 15:05:27

标签: azure-devops build-pipeline dotnetcorecli

我使用以下Yaml设置了Azure构建管道

enter image description here

该项目是一个简单的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

但是,通过构建管道发布的Artifacts给了我这些文件:

  • 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 个答案:

答案 0 :(得分:1)

问题是您在Windows和ubuntu的Azure DevOps上本地构建。如果将池更改为windows-latest,则将得到exe文件。请在这里看看-Build .NET Core console application to output an EXE

答案 1 :(得分:1)

Azure Devops构建管道无法构建可执行文件

那是因为:

可执行文件不是跨平台的。它们特定于操作系统和CPU体系结构。发布应用时, 创建可执行文件后,您可以将应用发布为自包含文件或 与运行时相关

因此,当您使用.dll代理构建/发布项目时,它将生成.exe而不是ubuntu文件。该dll文件可在.net核心运行时(windowslinuxmacOS)支持的所有平台上运行。

要生成.exe文件,可以在参数-r win-x64中指定目标运行时,也可以简单地将代理更改为windows

请检查this threadthe document了解更多详细信息。

希望这会有所帮助。