NuGet 警告 NU5129

在“<build_folder>/<tfm>/”中找到至少一个 .<extension> 文件,但“<build_folder>/<tfm>/<package_id>.<extension>”中没有。

<extension> 为以下某一项:targetsprops<build_folder> 为以下某一项:buildbuildTransitivebuildCrossTargetingbuildMultiTargeting<tfm>目标框架名字对象,或是可能不存在。 <package_id> 为包的包标识符

示例:

在“build/netstandard2.0/”中找到至少一个 .targets 文件,但“build/netstandard2.0/MyPackage.targets”中没有。

在“build/netstandard2.0/”中找到至少一个 .props 文件,但“build/netstandard2.0/MyPackage.props”中没有。

在“buildTransitive/net472/”中找到至少一个 .props 文件,但“buildTransitive/net472/My.Package.Id.props”中没有。

在“buildMultitargeting/netcoreapp3.0/”中找到至少一个 .targets 文件,但“buildMultitargeting/netcoreapp3.0/Contoso.Utilities. targets”中没有。

在“build/”中找到至少一个 .props 文件,但“build/AdventureWorks.Tools.props”中没有。

问题

包含 MSBuild 属性和目标的包需遵循在 .props.targets 扩展名之前使用包 ID 的命名约定。 未遵循此约定的文件不会导入到使用此包的项目中。

示例:如果包 ID 为 Contoso.Utilities 且包含文件 build/Contoso.Utilities.propsbuild/Utilities.targets,则仅 Contoso.Utilities.props 文件会导入到使用此包的项目中。 NuGet 不会导入 Utilities.targets

解决方案

将文件重命名以符合此约定。

在以上示例中,build/netstandard2.0/Utilities.targets 应重命名为 build/netstandard2.0/Contoso.Utilities.targets 以便 NuGet 开始导入它。 如果正在 Contoso.Utilities.props 中导入 Utilities.targets,请重命名此文件以使用 .props 扩展名。