C# 将msbuild任务作为nuget发送

C# 将msbuild任务作为nuget发送,c#,msbuild,nuget,C#,Msbuild,Nuget,我需要你的帮助 我正在开发一个msbuild任务,该任务对msbuild执行某些操作 我希望我的用户能够下载并安装nuget软件包,一旦安装了该软件包,构建任务将成为构建过程的一部分 我知道如何发布nuget包,我知道如何将自定义目标文件与nuget一起包含,我不知道的是如何在nuget安装时将import语句添加到csproj: 是有办法做到这一点,还是我要求太多 塔克斯! 吉拉德这些文件不在最容易找到的地方,但是 基本上,您将文件放在build\\\.props位置的包中。例如build\n

我需要你的帮助

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

我希望我的用户能够下载并安装nuget软件包,一旦安装了该软件包,构建任务将成为构建过程的一部分

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

是有办法做到这一点,还是我要求太多

塔克斯!
吉拉德

这些文件不在最容易找到的地方,但是

基本上,您将文件放在build\\\.props位置的包中。例如build\netstandard2.0\MyPackage.props。如果希望生成目标包含在所有TFM中,可以使用build\.props,但如果包中还包含其他资产,如lib/或contentFiles/,则无TFM生成文件将导致资产目标回退失败,因此如果包中只有net472 libs和生成文件,以netcoreapp3.0为目标的项目将只获得构建资产,而不会获得net472资产。如果生成文件位于TFM文件夹中,则NuGet的资产目标回退将同时选择库资产和生成资产。因此,我强烈建议大家始终使用TFM文件夹

文档需要改进,但列出了build、buildTransitive和buildMultiTargeting。使用packages.config的项目仅使用生成下的生成资产。当项目直接引用包时,使用PackageReference的项目仅使用生成和构建多目标资源。以传递方式(而不是直接)拉入包时,将选中buildTransitive下的资产。构建和构建多目标之间的区别是复杂的。如果您了解多目标SDK样式项目中的内部构建和外部构建的概念,那么不同的构建就是内部构建,否则只使用内部构建


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

文档不在最容易找到的位置,但是

基本上,您将文件放在build\\\.props位置的包中。例如build\netstandard2.0\MyPackage.props。如果希望生成目标包含在所有TFM中,可以使用build\.props,但如果包中还包含其他资产,如lib/或contentFiles/,则无TFM生成文件将导致资产目标回退失败,因此如果包中只有net472 libs和生成文件,以netcoreapp3.0为目标的项目将只获得构建资产,而不会获得net472资产。如果生成文件位于TFM文件夹中,则NuGet的资产目标回退将同时选择库资产和生成资产。因此,我强烈建议大家始终使用TFM文件夹

文档需要改进,但列出了build、buildTransitive和buildMultiTargeting。使用packages.config的项目仅使用生成下的生成资产。当项目直接引用包时,使用PackageReference的项目仅使用生成和构建多目标资源。以传递方式(而不是直接)拉入包时,将选中buildTransitive下的资产。构建和构建多目标之间的区别是复杂的。如果您了解多目标SDK样式项目中的内部构建和外部构建的概念,那么不同的构建就是内部构建,否则只使用内部构建

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