PrivateAssets='All'是什么意思?
当我构建我的 .NET Core (NETStandard v2.0) 项目时,我收到以下警告:
ViewModels:[FodyPackageReference] Fody:PropertyChanged.Fody 的包引用不包含 PrivateAssets='All'
该警告参考了PropertyChanged.Fody NuGet 包。
虽然警告不会停止构建,但我想解决警告。但是,我不明白它试图传达什么。
回答
PrivateAssets 是用于控制依赖资产的元数据标签。
您可能纯粹将依赖项用作开发工具,并且可能不想将其暴露给将使用您的包的项目。在这种情况下,您可以使用 PrivateAssets 元数据来控制此行为。
项目文件中的包引用(PackageReference)
在您的情况下,除非您想向PropertyChanged.Fody消费者公开(即您正在发布一个库),否则在 .csproj 文件中设置PrivateAssets为All将删除警告。
<Project Sdk="Microsoft.NET.Sdk">
<ItemGroup>
<PackageReference Include="PropertyChanged.Fody" Version="3.3.1" PrivateAssets="All" />
</ItemGroup>
</Project>
-
Thanks a lot, that's great and helped. I discovered, that sometimes the notation in the .csproj is like: `<PackageReference Include="PropertyChanged.Fody">
<Version>3.3.1</Version> <PrivateAssets>All</PrivateAssets>
</PackageReference> `