Behavior Change von PublishDepsFilePath

Die MSBuild-Eigenschaft PublishDepsFilePath ist für Anwendungen mit nur einer Datei leer. Zusätzlich darf bei Anwendungen, die nicht nur aus einer einzelnen Datei bestehen, die Datei deps.json erst später im Build in das Ausgabeverzeichnis kopiert werden.

Eingeführt in Version

5.0

Änderungsbeschreibung

In früheren .NET-Versionen ist die MSBuild-Eigenschaft PublishDepsFilePath der Pfad zur Datei deps.json der App im Ausgabeverzeichnis für Anwendungen, die nicht nur aus einer Datei bestehen, und ein Pfad im Zwischenverzeichnis für Anwendungen mit nur einer Datei.

Ab .NET 5 ist PublishDepsFilePath bei Anwendungen mit nur einer Datei leer. Die neue Eigenschaft IntermediateDepsFilePath gibt den Speicherort von deps.json im Zwischenverzeichnis an. Zusätzlich darf bei Anwendungen, die nicht nur aus einer einzelnen Datei bestehen, die Datei deps.json erst später im Build in das Ausgabeverzeichnis (d. h. den von PublishDepsFilePath angegebenen Pfad) kopiert werden.

Grund für die Änderung

Diese Änderung ist aus mehreren Gründen erfolgt:

  • Aufgrund eines Refactorings der Veröffentlichungslogik zur Unterstützung verbesserter Apps mit nur einer Datei in .NET 5.

  • Um sich bei Apps mit nur einer Datei vor Zielen zu schützen, die versuchen, die Datei deps.json neu zu schreiben, nachdem die Datei deps.json bereits gebündelt wurde, sodass die Anwendung nicht unbemerkt beeinträchtigt wird. Aus diesem Grund ist PublishDepsFilePath für Anwendungen mit nur einer Datei leer.

Ziele, die die Datei deps.json neu schreiben, sollten dies im Allgemeinen mit der Eigenschaft IntermediateDepsFilePath tun.

Betroffene APIs