AZFW0109: Сгенерированный проект не следует строить

Item Ценность
Идентификатор правила AZFW0109
Категория SDK
Severity Предупреждение

Причина

Цель Build выполняется на сгенерированном azure_functions.g.csproj проекте. Этот проект не предназначен для прямой разработки, он используется только для восстановления и разрешения полезной нагрузки расширения.

Описание правила

Сгенерированный проект не предназначен для непосредственной сборки; он используется только для восстановления и разрешения зависимостей пакета расширения. Строительство приведёт к предупреждению.

Как исправить

Диагностировать, что вызывает прямое построение сгенерированного проекта (azure_functions.g.csproj). Распространённой причиной является файл обхода или файл dirs.proj, который использует глоббинг для поиска проектов и случайно включает сгенерированный проект. Бинарный лог MSBuild может помочь понять, почему и как azure_functions.g.csproj создается.

Исключить из ProjectReference glob

Если в проекте обхода для включения проектов используется шаблон glob, добавьте Exclude, чтобы пропустить сгенерированный файл:

<ItemGroup>
  <ProjectReference Include="**/*.csproj" Exclude="**/azure_functions.g.csproj" />
</ItemGroup>

Удалите определённый ProjectReference

Если сгенерированный проект был добавлен как явная ссылка, удалите ProjectReference запись, указывающую на него:

  <ItemGroup>
-   <ProjectReference Include="path/to/azure_functions.g.csproj" />
  </ItemGroup>

Удалять соответствующие ProjectReference элементы условно

Если вы не можете легко изменить глоб или явное включение, вы можете удалить соответствующие элементы после их решения:

<ItemGroup>
  <ProjectReference Remove="@(ProjectReference)" Condition="'%(Filename)%(Extension)' == 'azure_functions.g.csproj'" />
</ItemGroup>

Когда нужно подавлять предупреждения

Подавление не рекомендуется. Рекомендуется выявить причины строительства этого проекта и предотвратить это.