【问题标题】:How do I get Azure DevOps to build a .NET 4.8 app?如何让 Azure DevOps 构建 .NET 4.8 应用程序?
【发布时间】:2022-09-29 17:26:20
【问题描述】:

当我们在 .net 4.8 应用程序上运行 dotnet build 时,我们会收到一条错误消息。我尝试安装 4.8 的开发人员包。但是,这失败了,我认为失败的原因是系统上已经安装了 .NET 4.8。解决此问题的正确方法是什么?

##[error]C:\\Program Files\\dotnet\\sdk\\6.0.300\\Microsoft.Common.CurrentVersion.targets(1221,5): 错误 MSB3644: .NETFramework,Version=v4 的参考程序集.0 未找到。要解决此问题,请为此框架版本安装开发包(SDK/Targeting Pack)或重新定位您的应用程序。您可以在https://aka.ms/msbuild/developerpacks 下载 .NET Framework 开发人员包

是不是我们不能将 dotnet build 用于 4.8 应用程序?我们需要改用 MSBuild 吗?

  • 您使用的是私有代理还是 Microsoft 托管的代理?您的管道 YAML 是什么样的?
  • 您称其为“.net 4.8 应用程序”,但您的错误消息显示“.NETFramework,Version=v4.0 的程序集未找到”。这向我表明您的项目文件针对 .NET 4.0,那么为什么将其称为“.net 4.8 应用程序”?
  • 因为在 web.config 文件中,我们的目标是 4.8。我们可以针对 4.7.1、4.7.2 或 4.8。我们并不真正关心我们使用哪些。我确认 Azure DevOps 服务器上安装了 4.8。

标签: asp.net .net azure-devops


【解决方案1】:

它要求构建代理是基于 Windows 的,例如vmImage: 'windows-2022'

 - task: VSBuild@1
   displayName: 'Dotnet build'
   inputs:
     solution: '*.sln'
     msbuildArgs: '/t:build /p:DeployOnBuild=true /p:OutputPath="$(Build.ArtifactStagingDirectory)"'
     restoreNugetPackages: true
     configuration: '$(buildConfiguration)'

以上假设解决方案文件位于源存储库的根目录中。

虽然restoreNugetPackages 是可选的,但在启用它之前我收到了未找到包的错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    • 2022-08-07
    相关资源
    最近更新 更多