C# 在.csproj文件中指定要添加到nuget包的文件

C# 在.csproj文件中指定要添加到nuget包的文件,c#,.net,nuget,.net-standard,nuspec,C#,.net,Nuget,.net Standard,Nuspec,我正在使用一些代码创建一个nuget包,但还需要在包中部署一些工具 在.nuspec文件中,我可以使用元素来实现这一点,而且这一切都很好 但是,在使用.nuspec文件时,csproj文件中的packageReferences不包括在内,并且我发现在手动(使用元素)包括它们时存在一些问题 创建的包似乎总是作为.net framework包还原,即使它是以.net为目标的,如中所示 如果我开始使用.csproj格式来指定nuget包的详细信息,我希望所有这些问题都会消失,但是我不知道如何做 有人知

我正在使用一些代码创建一个nuget包,但还需要在包中部署一些工具

在.nuspec文件中,我可以使用
元素来实现这一点,而且这一切都很好

但是,在使用.nuspec文件时,csproj文件中的
packageReferences
不包括在内,并且我发现在手动(使用
元素)包括它们时存在一些问题

创建的包似乎总是作为.net framework包还原,即使它是以.net为目标的,如中所示

如果我开始使用.csproj格式来指定nuget包的详细信息,我希望所有这些问题都会消失,但是我不知道如何做

有人知道这是怎么做的吗


如果没有,谁能解释一下从.nuspec文件创建的.net framework/.net core nuget包,它可以恢复到正确的目标版本并尊重包的依赖关系吗?

查找/发现并不容易,但nuget的文档页面有一个名为“”的部分,它告诉您有关MSBuild项上的
PackagePath
元数据的信息,NuGet使用该元数据将文件复制到包中

因此,在您的csproj中,您可以有如下内容:


然后您的包将包含
tools\Tool.exe
。我不能100%确定是否需要
Pack=“true”
,但文档在示例中使用了它,因此我将其放在这里以防万一


如果方便的话,可以使用MSBuild的全局复制来复制整个目录<代码>包含=“..\MyTool\*”。我的MSBuild技能不太高级,因此我不知道如何全局化
。\MyTool\***
,这意味着所有子目录中的所有文件,同时在
PackagePath=“?”
元数据中保持正确的目录布局。因此,我建议最好是每个目录一个glob。

查找/发现并不容易,但NuGet的文档页面有一个名为“”的部分,它告诉您有关MSBuild项上的
PackagePath
元数据的信息,NuGet使用该元数据将文件复制到包中

因此,在您的csproj中,您可以有如下内容:


然后您的包将包含
tools\Tool.exe
。我不能100%确定是否需要
Pack=“true”
,但文档在示例中使用了它,因此我将其放在这里以防万一


如果方便的话,可以使用MSBuild的全局复制来复制整个目录<代码>包含=“..\MyTool\*”。我的MSBuild技能不太高级,因此我不知道如何全局化
。\MyTool\***
,这意味着所有子目录中的所有文件,同时在
PackagePath=“?”
元数据中保持正确的目录布局。因此,我建议最好是每个目录一个glob。

谢谢@zivkan,这非常有效。需要注意的一点是,这也会将所有文件引入到VisualStudio中的项目中,这在我的例子中是非常烦人的(有很多文件)。我从来没能说服VS隐藏这些,尽管我尝试过Visible=“false”和false,比如在和感谢@zivkan中,这非常有效。需要注意的一点是,这也会将所有文件引入到VisualStudio中的项目中,这在我的例子中是非常烦人的(有很多文件)。虽然我尝试了Visible=“false”和false,但我始终无法说服VS隐藏这些内容