PackageReference Update 和 PackageReference Include 有什么区别?

What is the difference between PackageReference Update and PackageReference Include?

    <PackageReference Update="Microsoft.NETCore.App" Version="2.1.22" />
    <PackageReference Include="Platform.Core" Version="1.8.0" />

以上两行中的“更新”和“包含”有什么区别?

参见 these docs

当您只想修改具有相同名称的 pre-existing 项目的某些属性时,似乎使用了 Update

所以你可以这样做:

<PackageReference Include="Some.Package" Version="1.2.3"/>
<PackageReference Update="Some.Package" PrivateAssets="all"/>

Update 行会将 PrivateAssets="all" 属性 添加到 pre-existing Some.Package 项,最终结果与:

<PackageReference Include="Some.Package" Version="1.2.3" PrivateAssets="all"/>

如果您使用 Include 而不是 Update,您将完全覆盖第一行,并丢失 Version="1.2.3" 属性.

请注意,在没有要更新的 pre-existing 项时仅使用 Update 似乎无害,但毫无意义。