如何在Visual Studio 2017中向nuget包添加其他文件
我最近搬到了Visual Studio 2017
社区版。 它有2个不错的新function
- 您不需要在csproj中明确包含源文件,它会自动执行此操作,
- 它可以直接构建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”足以将文件复制到包中。