Azure Devops 构建管道不构建可执行文件
Azure Devops build pipeline doesn't build executables
我使用以下 Yaml 设置了一个 azure 构建管道
这个项目是一个简单的 hello world 控制台应用程序,用 c# .net core 3.1 编写
当我在本地构建或发布此项目时,我得到以下输出:
- 146appsettings.deploy.json
- 186appsettings.json
- 416 TestYaml.deps.json
- 4.608 TestYaml.dll
- 171.520 TestYaml.exe
- 656 TestYaml.pdb
- 154TestYaml.runtimeconfig.json
但是,通过构建管道发布的工件为我提供了这些文件:
- 140 appsettings.deploy.json
- 179appsettings.json
- 394 TestYaml.deps.json
- 4.608 TestYaml.dll
- 86.424 TestYaml
- 632 TestYaml.pdb
- 146TestYaml.runtimeconfig.json
所以在这里,文件大小更小,更重要的是 TestYaml.exe 丢失并被 TestYaml 文件替换。
这应该很简单,但我看不出缺少什么。
在此先感谢您的帮助!
问题是您在 Windows 上本地构建,在 ubuntu 上构建 Azure DevOps。如果将池更改为 windows-latest
,您将获得 exe 文件。请看这里 -
Azure Devops build pipeline doesn't build executables
那是因为:
Executables aren't cross-platform. They're specific to an operating system and CPU architecture. When publishing your app and
creating an executable, you can publish the app as self-contained or
runtime-dependent.
因此,当您使用 ubuntu
代理 build/publish 项目时,它将生成 .dll
而不是 .exe
文件。此 dll 文件适用于 .net 核心运行时 (windows
、linux
、macOS
) 支持的所有平台。
要生成 .exe 文件,您可以在参数中指定目标运行时 -r win-x64
或者您可以简单地将代理更改为 windows
.
请查看 and the document 了解更多详情。
希望这对您有所帮助。
我使用以下 Yaml 设置了一个 azure 构建管道
这个项目是一个简单的 hello world 控制台应用程序,用 c# .net core 3.1 编写
当我在本地构建或发布此项目时,我得到以下输出:
- 146appsettings.deploy.json
- 186appsettings.json
- 416 TestYaml.deps.json
- 4.608 TestYaml.dll
- 171.520 TestYaml.exe
- 656 TestYaml.pdb
- 154TestYaml.runtimeconfig.json
但是,通过构建管道发布的工件为我提供了这些文件:
- 140 appsettings.deploy.json
- 179appsettings.json
- 394 TestYaml.deps.json
- 4.608 TestYaml.dll
- 86.424 TestYaml
- 632 TestYaml.pdb
- 146TestYaml.runtimeconfig.json
所以在这里,文件大小更小,更重要的是 TestYaml.exe 丢失并被 TestYaml 文件替换。
这应该很简单,但我看不出缺少什么。
在此先感谢您的帮助!
问题是您在 Windows 上本地构建,在 ubuntu 上构建 Azure DevOps。如果将池更改为 windows-latest
,您将获得 exe 文件。请看这里 -
Azure Devops build pipeline doesn't build executables
那是因为:
Executables aren't cross-platform. They're specific to an operating system and CPU architecture. When publishing your app and creating an executable, you can publish the app as self-contained or runtime-dependent.
因此,当您使用 ubuntu
代理 build/publish 项目时,它将生成 .dll
而不是 .exe
文件。此 dll 文件适用于 .net 核心运行时 (windows
、linux
、macOS
) 支持的所有平台。
要生成 .exe 文件,您可以在参数中指定目标运行时 -r win-x64
或者您可以简单地将代理更改为 windows
.
请查看
希望这对您有所帮助。