DocFX (в Azure DevOps): импортированный проект \15.0\Microsoft.Common.props не найден.

Я получаю это предупреждение при попытке создать документацию DocFX из задачи сборки Azure DevOps (локально она работает нормально):

Build succeeded with warning.
  [19-04-25 03:02:23.747]Warning:[MetadataCommand.ExtractMetadata](d:/a/1/s/src/RailSharp/RailSharp.csproj)Workspace failed with: [Failure] Msbuild failed when processing the file 'd:\a\1\s\src\RailSharp\RailSharp.csproj' with message: The imported project "\15.0\Microsoft.Common.props" was not found. Also, tried to find "\15.0\Microsoft.Common.props" in the fallback search path(s) for $(MSBuildExtensionsPath) - "C:\Program Files (x86)\MSBuild" . These search paths are defined in "C:\Users\VssAdministrator\.nuget\packages\docfx.console\2.42.0\tools\docfx.exe.Config". Confirm that the path in the <Import> declaration is correct, and that the file exists on disk in one of the search paths.  C:\Program Files\dotnet\sdk\2.2.105\Sdks\Microsoft.NET.Sdk\Sdk\Sdk.props
  [19-04-25 03:02:23.747]Warning:[MetadataCommand.ExtractMetadata]Project 'd:\a\1\s\src\RailSharp\RailSharp.csproj' does not contain any documents.
  [19-04-25 03:02:23.747]Warning:[MetadataCommand.ExtractMetadata]No metadata is generated for RailSharp.

Ошибка возникает из-за команды dotnet build (DocFX генерирует документацию при вызове этой команды).

Вот файл csproj, который я использую:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="docfx.console" Version="2.42.0">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
  </ItemGroup>

</Project>

Я делаю что-то не так или это проблема DocFX?

Вот моя ветка кода, если нужно: https://github.com/softframe/railsharp/tree/feature/docs


person Maxime Gélinas    schedule 25.04.2019    source источник
comment
Вы выполнили свою сборку на частном агенте без установленной Visual Studio 2017? Если да, попробуйте установить его и проверить еще раз.   -  person Leo Liu-MSFT    schedule 25.04.2019
comment
Я использую pool: vmImage: windows-latest. Итак, вы говорите, что VS не установлен на этом образе виртуальной машины?   -  person Maxime Gélinas    schedule 25.04.2019


Ответы (1)


Спасибо LeoLiu-MSFT за то, что указал мне правильное направление. Это заработало после того, как я установил образ ВМ в azure-pipelines.yml на vs2017-win2016 следующим образом:

pool:
  vmImage: vs2017-win2016

DocFX требует Visual Studio (или, по крайней мере, инструментов сборки VS) для создания документации. Поэтому, поскольку VS был установлен локально, а не на образе виртуальной машины, который я использовал в Azure DevOps (т. е. windows-latest), вот почему он работал локально, но не в Azure DevOps.

person Maxime Gélinas    schedule 05.05.2019
comment
Всегда пожалуйста. Поскольку вы решили свою проблему, вы можете принять ее в качестве ответа, чтобы это могло помочь другим членам сообщества, у которых возникают те же проблемы, и мы могли бы заархивировать эту тему, спасибо. - person Leo Liu-MSFT; 06.05.2019