我的解决方案包含多个项目,我正在尝试在单个项目 (.csproj) 上构建 Azure devops 管道,但在构建时出现此错误。
##[error]C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(5574,5):错误 MSB3073:命令“ XCOPY /YD:\a\1\s\XXX\XXX\bin\Release\XXX.dll UndefinedNuget\lib\net40" 以代码 4 退出。
这是我的 azure-pipelines.yml 文件
trigger:
- Sprint47
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'AnyCPU'
buildConfiguration: 'Release'
steps:
- task: VSBuild@1
inputs:
solution: 'XXX\XXX\XXX.csproj'
msbuildArgs: '/p:Configuration=Release /p:Platform=AnyCPU /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
platform: 'AnyCPU'
configuration: 'Release'
- task: VSTest@2
inputs:
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: PublishBuildArtifacts@1
我该如何解决这个问题。
答案 0 :(得分:0)
首先,您应该添加 nuget restore
任务来恢复必要的 nuget 包,以确保将所需的 dll 复制到 bin 文件夹中。
像这样:
steps:
- task: NuGetToolInstaller@1
inputs:
versionSpec: 5.x
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
- task: VSBuild@1
inputs:
solution: 'XXX\XXX\XXX.csproj'
msbuildArgs: '/p:Configuration=Release /p:Platform=AnyCPU /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
platform: 'AnyCPU'
configuration: 'Release'
此外,您应该检查 XCOPY /Y ....
文件下的命令 csproj
。确保 xcopy /Y file1 path1
是合法的。
我注意到 UndefinedNuget\lib\net40
并且您应该检查该属性是否被正确解析。使用正确的属性或路径。
另外,请另外添加 /R
以运行命令。
像这样:
XCOPY /Y /E /R file1 path1
如果上述方法没有帮助,请不要忘记与我们分享 XCOPY 命令以解决问题。