Изменение поведения PublishDepsFilePath

Свойство MSBuild PublishDepsFilePath пусто для однофайловых приложений. Кроме того, для приложений с несколькими файлами файл deps.json может быть скопирован в выходной каталог только на более поздних этапах сборки.

Представленные версии

5,0

Описание изменения

В предыдущих версиях .NET свойство MSBuild PublishDepsFilePath является путем к файлу deps.json приложения в выходном каталоге для приложений с несколькими файлами и путем в промежуточном каталоге для однофайловых приложений.

Начиная с .NET 5 свойство PublishDepsFilePath пусто для однофайловых приложений, а новое свойство IntermediateDepsFilePath указывает расположение файла deps.json в промежуточном каталоге. Кроме того, для приложений с несколькими файлами файл deps.json может быть скопирован в выходной каталог (т. е. по пути, указанному в PublishDepsFilePath) только на более поздних этапах сборки.

Причина изменения

Это изменение было внесено по нескольким причинам.

  • Из-за рефакторинга логики публикации для поддержки улучшенных однофайловых приложений в .NET 5.

  • Для защиты однофайловых приложений от целевых объектов, которые пытаются перезаписать файл deps.json уже после его объединения в пакет, без влияния на приложение. Поэтому свойство MSBuild PublishDepsFilePath пусто для однофайловых приложений.

Целевые объекты, которые перезаписывают файл deps.json, обычно используют для этого свойство IntermediateDepsFilePath.

Затронутые API

Н/Д