AZFW0109: Das generierte Projekt sollte nicht erstellt werden.

Element Wert
Regel-ID AZFW0109
Kategorie Sdk
Severity Warning

Ursache

Das Build-Ziel wird auf dem generierten azure_functions.g.csproj-Projekt ausgeführt. Dieses Projekt ist nicht dafür gedacht, direkt gebaut zu werden, sondern dient nur dazu, die Erweiterungsnutzlast wiederherzustellen und aufzulösen.

Regelbeschreibung

Das erzeugte Projekt ist nicht dafür gedacht, direkt gebaut zu werden, sondern dient nur der Wiederherstellung und Auflösung der Erweiterungsnutzlast. Bauen führt zu einer Verwarnung.

So beheben Sie das Problem

Diagnostiziere, was dazu führt, dass das generierte Projekt (azure_functions.g.csproj) direkt gebaut wird. Eine häufige Ursache ist ein Durchlauf oder eine dirs.proj-Datei, die Globbing nutzt, um Projekte zu entdecken, wodurch das generierte Projekt unbeabsichtigt erfasst wird. Das Binärprotokoll von MSBuild kann hilfreich sein, um nachzuvollziehen, warum bzw. wie azure_functions.g.csproj erstellt wird.

Aus einem ProjectReference Glob ausschließen

Wenn dein Traversal-Projekt ein Glob-Muster verwendet, um Projekte einzubeziehen, füge ein Exclude hinzu, um die generierte Datei zu überspringen:

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

Entfernen Sie ein bestimmtes ProjectReference

Wenn das generierte Projekt als explizite Referenz hinzugefügt wurde, entferne den Eintrag, der ProjectReference darauf verweist:

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

Übereinstimmende ProjectReference Elemente bedingt entfernen

Wenn du den Glob oder das explizite Include nicht einfach ändern kannst, kannst du passende Items entfernen, nachdem sie gelöst wurden:

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

Wann Warnungen unterdrückt werden sollten

Unterdrückung wird nicht empfohlen. Es wird empfohlen, die Ursache für den Bau dieses Projekts zu identifizieren und es zu verhindern.