我需要你的帮助。
我正在开发一个 msbuild 任务,该任务对 msbuild 执行某些操作。
我希望我的用户能够下载并安装 nuget 包,安装包后,构建任务将成为构建过程的一部分。
我知道如何发布 nuget 包,并且知道如何将自定义目标文件与 nuget 一起包含,我不知道如何在 nuget 安装时将导入语句添加到 csproj 中:
有没有办法做到这一点,还是我要求太多?
谢谢!
吉拉德
这些文档不是最容易找到的地方,但是这是有关在包中包含 MSBuild props/targets 文件的文档链接 https://learn.microsoft.com/en-us/nuget/create-packages/creating-a-package#include-msbuild-props-and-targets-in-a-package.
基本上,您将文件放在包中的位置build\<tfm>\<package_id>.props
。例如build\netstandard2.0\MyPackage.props
。如果您希望构建目标包含在所有 TFM 中,您可以使用build\<package_id>.props
,但是如果您的包还包含其他资产,例如lib/
or contentFiles/
,“no-TFM”构建文件将导致“资产目标回退”失败,因此如果您的包只有net472
库,以及build
文件,项目目标netcoreapp3.0
将仅得到build
资产,没有一个net472
资产。如果你的build
文件位于 TFM 文件夹中,那么 NuGet 的资产目标回退将选择lib
and build
资产。因此,我强烈鼓励大家始终使用 TFM 文件夹。
文档需要改进,但是该表解释 https://learn.microsoft.com/en-us/nuget/create-packages/creating-a-package#from-a-convention-based-working-directory lists build
, buildTransitive
, and buildMultiTargeting
。项目使用packages.config
仅使用以下构建资产build
。项目使用PackageReference
只使用build
and buildMultiTargeting
当项目直接引用包时的资产。下的资产buildTransitive
当包被传递而不是直接拉入时被选中。和...之间的不同build
and buildMultiTargeting
很复杂。如果您了解多目标 SDK 样式项目中“内部构建”和“外部构建”的概念,那就是区别(build
是内部构建),否则仅使用build
.
我应该更新文档以获取此信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)