将 msbuild 任务作为 nuget 交付



我需要你的帮助。

我正在开发一个 msbuild 任务,该任务在 msbuild 上执行某些操作。

我希望我的用户能够下载并安装 nuget 包,安装包后,生成任务将成为生成过程的一部分。

我知道如何发布 nuget 包,并且知道如何将自定义目标文件与 nuget 一起包含,我不知道的是如何在安装 nuget 时将导入语句添加到 csproj:

有没有办法这样做,还是我要求太多了?

谢谢! 吉拉德

文档不是最容易找到的地方,但这里有一个指向在包中包含 MSBuild 道具/目标文件的文档的链接。

基本上,您将文件放在位置build<tfm><package_id>.props的包中。例如buildnetstandard2.0MyPackage.props.如果您希望构建目标包含在所有 TFM 中,则可以使用build<package_id>.props,但是如果您的包还包含其他资产(如lib/contentFiles/(,则"无 TFM"构建文件将导致"资产目标回退"失败,因此,如果您的包只有net472个库和build文件,则面向netcoreapp3.0的项目将仅获取build资产, 没有net472资产。如果build文件位于 TFM 文件夹中,则 NuGet 的资产目标回退将同时选择libbuild资产。因此,我强烈建议大家始终使用TFM文件夹。

文档需要改进,但解释的表格列出了buildbuildTransitivebuildMultiTargeting。使用packages.config的项目仅使用build下的构建资源。使用PackageReference的项目仅在项目直接引用包时使用buildbuildMultiTargeting资源。buildTransitive下的资产在传递(而不是直接(拉入包时被选中。buildbuildMultiTargeting之间的区别很复杂。如果你理解多目标SDK风格项目中"内部构建"和"外部构建"的概念,这就是区别(build是内部构建(,否则只能使用build

我应该更新文档以获得此信息。

最新更新