我有一个.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构建管道,但没有运气。
1条答案
按热度按时间zphenhs41#
可能会有一些问题。“干净”的构建机器环境可能会导致您在本地机器上看不到的问题。
检查您的构建配置:
并查看当项目处于
Any CPU
配置下时是否正在构建x86。如果不是,那么很可能发生的情况是,您在某个时候构建了
x86
,而构建Any CPU
平台时使用的是以前构建的版本。在管道中需要做的是确保首先构建x86
版本,然后构建Any CPU
版本。