首页 > 解决方案 > PrivateAssets='All' 是什么意思?

问题描述

当我构建我的 .NET Core (NETStandard v2.0) 项目时,我收到以下警告:

ViewModels:[FodyPackageReference] Fody:PropertyChanged.Fody 的包引用不包含 PrivateAssets='All'

该警告引用了PropertyChanged.Fody NuGet 包。

虽然警告不会停止构建,但我想解决警告。但是,我不明白它试图传达什么。

标签: .net-corenugetnuget-packagefody-propertychanged

解决方案


PrivateAssets是用于控制依赖资产的元数据标签。

您可能将依赖项纯粹用作开发工具,并且可能不想将其公开给将使用您的包的项目。在这种情况下,您可以使用 PrivateAssets 元数据来控制此行为。

项目文件中的包引用 (PackageReference)

在您的情况下,除非您想向PropertyChanged.Fody消费者公开(即您正在发布一个库),否则在您的 .csproj 文件中设置PrivateAssetsAll将删除警告。

<Project Sdk="Microsoft.NET.Sdk">
    <ItemGroup>
      <PackageReference Include="PropertyChanged.Fody" Version="3.3.1" PrivateAssets="All" />
    </ItemGroup>
</Project>

推荐阅读