我正在vsts上构建一个Xamarin Forms
应用程序(通过yml)。
iOS和Android的步骤几乎完全相同。
整个解决方案在我的机器上构建良好,iOS阶段在VSTS上构建良好。
但是我在Android阶段的解决方案的msbuild上出现错误。 错误是:
[错误] C:\ Program Files \ dotnet \ sdk \ 2.1.104 \ Sdks \ Microsoft.NET.Sdk \ build \ Microsoft.PackageDependencyResolution.targets(327,5): 错误:资产文件'D:\ a \ 1 \ s \ MyApp.Controls \ obj \ project.assets.json' 未找到。运行NuGet包还原以生成此文件。
据我所知,我首先必须运行dot net restore
来生成project.assets.json
文件,我这样做。以下是我相应的yml任务:
- task: NuGetToolInstaller@0
displayName: 'Dot Net Restore'
condition: succeeded()
inputs:
command: restore
projects: |
MyApp.*/*.csproj
Platforms/MyApp.Android/*.csproj
Platforms/MyApp.Controls.Android/*.csproj
- task: XamarinAndroid@1
displayName: 'Building Android'
inputs:
solutionFile: '**/*.sln'
configuration: 'Release'
buildToolOption: msbuild
请注意MyApp.Controls.Android
引用了MyApp.Controls
(这是一个.Net标准库),这是发生错误的项目。
答案 0 :(得分:0)
您的yml文件中定义的NuGet还原任务不正确,您应该使用 NuGetCommand@2
任务进行NuGet还原。
以下是YAML构建文件的示例:
steps:
- task: NuGetToolInstaller@0
inputs:
versionSpec: 4.4.1
- task: NuGetCommand@2
inputs:
restoreSolution: '**/*.sln'
- task: VSBuild@1
displayName: 'Building Android'
inputs:
solution: '**/*.sln'
vsVersion: 15.0
configuration: '$(BuildConfiguration)'
logProjectEvents: false