我有一个包含3个项目的解决方案。其中两个是.Net Standard项目,一个是.Net Framework项目,即单元测试。我正在尝试构建它,但出现错误。
C:\Program
Files\dotnet\sdk\2.2.105\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(208,5): Error NETSDK1004: Assets file 'D:\a\1\s\src\TestIOC\obj\project.assets.json' not found. Run a NuGet package restore to generate this file.
C:\Program Files\dotnet\sdk\2.2.105\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(208,5): Error NETSDK1004: Assets file 'D:\a\1\s\src\TestMvvm\obj\project.assets.json' not found. Run a NuGet package restore to generate this file.
Process 'msbuild.exe' exited with code '1'.
这是我当前的Azure Pipelines YAML文件。
trigger:
- master
pr:
- master
variables:
buildConfiguration: Release
buildPlatform: Any CPU
coreSolution: 'src\TestMvvmCore.sln'
coreCSProj: 'src\TestMvvm\*.csproj'
testCSProj: 'src\TestMvvm.Tests\*.csproj'
pool:
vmImage: vs2017-win2016
steps:
- task: NuGetToolInstaller@1
inputs:
versionSpec: '4.9.1'
- task: NuGetCommand@2
inputs:
command: 'restore'
restoreSolution: '**/*.sln, src\TestMvvm.Tests\packages.config'
feedsToUse: 'select'
- task: MSBuild@1
displayName: Build TestMvvm Solution
inputs:
solution: '$(coreSolution)'
configuration: '$(buildConfiguration)'
restoreNugetPackages: true
如果有人可以帮助我纠正错误,我将不胜感激
答案 0 :(得分:2)
由于您的项目类型和 msbuild 任务不会自动调用dotnet restore
,因此需要执行另一个任务来显式调用它。您可以在执行nuget restore
之前尝试执行dotnet restore任务而不是msbuild xxx.sln
。
此外,您还可以将/t:restore
添加到MSBuild参数中以显式调用dotnet restore
:
msbuildArguments: ‘/t:restore’
注意:在 msbuild 任务中,restoreNugetPackages
已被弃用。它将不再起作用,您必须使用任务来获得还原包。
答案 1 :(得分:1)
您必须首先还原nuget软件包,并且必须提供SLN文件,而不是packages.config。
您的NugetCommand @ 2任务应仅还原解决方案文件,而不还原packages.config
文件。首先更正您的YAML。