PublishDepsFilePath 行为变更

对于单文件应用程序,PublishDepsFilePath MSBuild 属性为空。 此外,对于非单文件应用程序,可能在生成后期才会将 deps.json 文件复制到输出目录。

引入的版本

5.0

更改描述

在以前的 .NET 版本中,对于非单文件应用程序,PublishDepsFilePath MSBuild 属性是指向应用的输出目录中 deps.json 文件的路径;对于单文件应用,该属性是中间目录中的路径。

从 .NET 5 开始,对于单文件应用程序,PublishDepsFilePath 为空,并且新的 IntermediateDepsFilePath 属性指定 deps.json 在中间目录中的位置。 此外,对于非单文件应用程序,可能在生成后期才会将 deps.json 文件复制到输出目录(即 PublishDepsFilePath 指定的路径)。

更改原因

进行此更改有以下几个原因:

  • 在 .NET 5 中,为了支持改进的单文件应用,重构了发布逻辑。

  • 在单文件应用中,为了帮助保护在捆绑 deps.json 后尝试重写 deps.json 文件的目标,从而静默不影响该应用 。 因此,对于单文件应用程序,PublishDepsFilePath 为空。

重写 deps.json 文件的目标通常应使用 IntermediateDepsFilePath 属性来执行此操作。

受影响的 API

不适用