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.
Empfohlene Maßnahme
Ziele, die die Datei deps.json neu schreiben, sollten dies im Allgemeinen mit der Eigenschaft IntermediateDepsFilePath
tun.
Betroffene APIs
–