NuGet 警告 NU5129
在“<build_folder>/<tfm>/”中找到至少一个 .<extension> 文件,但“<build_folder>/<tfm>/<package_id>.<extension>”中没有。
<extension>
为以下某一项:targets
、props
。
<build_folder>
为以下某一项:build
、buildTransitive
、buildCrossTargeting
、buildMultiTargeting
。
<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.props
和 build/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
扩展名。