如何在Visual Studio 2017中向nuget包添加其他文件

我最近搬到了Visual Studio 2017社区版。 它有2个不错的新function

  1. 您不需要在csproj中明确包含源文件,它会自动执行此操作,
  2. 它可以直接构建nuget包。

我想将我的开源CodeFirstWebFramework DLL打包为nuget包。 除了包含DLL ,包还必须包含其他文件的整个目录树(包括.js,.tmpl,.css和.md文件)。

如何告诉Visual Studio我希望包中包含此目录树?

从我通过广泛搜索找到的信息,并忽略了涉及将文件添加到csproj的所有过时信息,我所能找到的只是将它们放在contentFiles文件夹中,但这似乎不起作用。

我的项目文件如下所示:

   net45 True Nikki Locke Trumphurst Ltd Easy to use web server for building web apps that use sql databases generated from c# classes 2017 Trumphurst Ltd. https://github.com/nikkilocke/CodeFirstWebFramework https://github.com/nikkilocke/CodeFirstWebFramework Github C# SQL Code First Web Server              

我疯狂地猜测我可能需要从网上冲突和过时的信息中做些什么,我添加了以下内容:

    true   

现在.nupkg文件中包含了contentFiles文件夹的内容(在两个地方,一个content文件夹和一个contentFiles文件夹)。

但是,当我在另一个项目中安装软件包时,内容文件不会出现,尽管它们列在obj文件夹的project.assets.json文件中。

我现在再次更改了我的项目文件,现在它显示为:

   net45 True Nikki Locke Trumphurst Ltd Easy to use web server for building web apps that use sql databases generated from c# classes 2017 Trumphurst Ltd. https://github.com/nikkilocke/CodeFirstWebFramework https://github.com/nikkilocke/CodeFirstWebFramework Github C# SQL Code First Web Server               true true Content true Always         

现在,contentFiles已成功复制到任何下载NuGet包的项目中的同名文件夹(即contentFiles ) – 不确定哪个指令有效,但其中一个指令有效。

遗憾的是,在编译时内容不会自动复制到项目的输出文件夹中 – 欢迎提出建议。

包装“Content”和“IncludeInPackage”足以将文件复制到包中。