如何复制与 NuGet 包中的 DLL 一起包含的文本文件?
当我在另一个解决方案中使用我的自定义 NuGet 包时(c:\dev\对于这个例子),其中的结果文件结构c:\dev\package\projectId\lib\netstandard2.0\有许多 DLL 和一个文本文件,比如file.txt. 在构建解决方案时,所有 DLL 都被复制,但文本文件被留下。
在.nuspec文件中,我最初将文件包含在<files><file src="foo\file.txt" target="lib\netstandard2.0"/></files>. 该file.txt恢复的NuGet包时包两端向上文件夹,但它不会复制到构建目录。
尝试 1:我尝试contentFiles在 nuspec 文件中使用该属性,因为 nuspec参考多次指向那里。我得到了nuget.exe pack使用这个新属性的命令(即没有语法错误),但是内容 ( file.txt) 的处理方式没有变化。
尝试 2:我尝试使用projectId.targets文件。这使用Target具有ItemGroup包含文件的 。然后,我尝试使用一个Copy事件,将目标文件夹指向为$(OutputPath).
将包中包含的文件复制到构建目录似乎非常困难,必须深入研究 MSBuild 事件等。
我在这里不知所措,欢迎任何指点。
编辑#1:
根据以下建议,我尝试将此部分添加到元数据中:
<contentFiles>
<files include="any\any\file.txt" buildAction="EmbeddedResource" />
</contentFiles>
这适用于一个小的测试用例。在file.txt显示了很好的Visual Studio和build目录。奇怪的是,它在我的主项目中使用完全相同的语法不起作用(我在两者中都使用 .NET Core 2.0)。此外,在 NuGet 包资源管理器中,它单独显示在包内容中。但是当我在 下添加一些东西时 …