Azure DevOps Pipeline上的.Net Framework 4.8应用程序的生成错误

y4ekin9u  于 2023-10-21  发布在  .NET
关注(0)|答案(1)|浏览(136)

我有一个.Net Framework 4.8应用程序,解决方案中有多个项目。主项目(.csproj)-“Project A”在Linux和Release配置中的平台目标都是“x86”,而其他项目在Linux和Release配置中的平台目标都是“Any CPU”。解决方案在Visual Studio中构建(编译)良好,但当我尝试使用VSBuild@1任务创建和运行YAML构建管道时,它失败并出错。这些错误是由一个将“项目A”作为引用的测试项目抛出的,这些错误被抛出,就好像“项目A”没有作为引用添加一样。但项目A被添加为测试项目的参考。
顺便说一下,我是YAML管道的新手,但我相信YAML管道对.net应用程序来说很好。
抛出的错误都属于以下类型:错误代码:命名空间“xx.xx.xx.ProjectA”中不存在类型或命名空间名称“MessageBox”(是否缺少程序集引用?) “Build-Windows”是一个Windows自托管代理,它是Windows Server 2019操作系统。我试过很多方法来解决,但没有运气。我错过了什么?任何帮助将非常感谢!! 我的YAML管道看起来像这样:

trigger:
- none
 
variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'
 
pool: Build-Windows
 
steps:
- task: NuGetToolInstaller@1
  displayName: ⬇ NuGet - Install
  inputs:
    versionSpec: 
    checkLatest: true
 
- task: NuGetCommand@2
  displayName: 🔄 NuGet - Restore
  inputs:
    command: 'restore'
    restoreSolution: '$(solution)'
    feedsToUse: 'config'
    nugetConfigPath: NuGet.Config
 
 
- task: VSBuild@1
  displayName: 🏗 Build 
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:OutDir=$(Build.ArtifactStagingDirectory)'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
    clean: true
 
 
- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
 
- task: PublishBuildArtifacts@1
  displayName: ⬆ Publish Artifacts
  inputs:
    ArtifactName: Package
    TargetPath: $(Build.ArtifactStagingDirectory)

我尝试改变目标平台,多次改变YAML构建管道,但没有运气。

zphenhs4

zphenhs41#

可能会有一些问题。“干净”的构建机器环境可能会导致您在本地机器上看不到的问题。
检查您的构建配置:

并查看当项目处于Any CPU配置下时是否正在构建x86。

如果不是,那么很可能发生的情况是,您在某个时候构建了x86,而构建Any CPU平台时使用的是以前构建的版本。在管道中需要做的是确保首先构建x86版本,然后构建Any CPU版本。

相关问题