Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Devops生成管道-错误MSB3073:命令XCOPY_C#_Azure_Azure Devops_Msbuild_Azure Pipelines - Fatal编程技术网

C# Devops生成管道-错误MSB3073:命令XCOPY

C# Devops生成管道-错误MSB3073:命令XCOPY,c#,azure,azure-devops,msbuild,azure-pipelines,C#,Azure,Azure Devops,Msbuild,Azure Pipelines,我有一个包含多个项目的解决方案,我正试图在单个项目(.csproj)上构建Azure devops管道,但构建时出现此错误 ##[错误]C:\Program Files(x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(5574,5):错误MSB3073:命令“XCOPY/Y D:\a\1\s\XXX\XXX\Bin\Release\XX

我有一个包含多个项目的解决方案,我正试图在单个项目(.csproj)上构建Azure devops管道,但构建时出现此错误

##[错误]C:\Program Files(x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(5574,5):错误MSB3073:命令“XCOPY/Y D:\a\1\s\XXX\XXX\Bin\Release\XXX.dll UnfinedNuGet\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

如何解决此问题。

首先,您应该添加
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 /E /R file1 path1
除了,您还应该检查
csproj
文件下的命令
XCOPY/Y….
。确保
xcopy/Y文件1路径1
合法

我注意到
UnfinedNuGet\lib\net40
,您应该检查属性的解析是否正确。使用正确的属性或路径

另外,请另外添加
/R
以运行该命令

像这样:

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 /E /R file1 path1
如果上述命令没有帮助,请不要忘记与我们共享XCOPY命令来解决问题