我有一个JSON模式,描述了如何与正在开发的.NET微服务进行通信。我想在nuget文件中与希望通过Kafka与我通信的其他服务共享此JSON模式(以及其他各种poco对象)。
我的问题是,如何使用nuget共享此文件?共享poco对象很简单,但是我不确定如何共享静态JSON文件之类的东西,也不确定此nuget包的使用者将如何引用并使用该JSON文件。
我尝试搜索nuget文档,但找不到任何东西。这可能吗?
答案 0 :(得分:1)
Here are the docs on content files in nupkgs,但请注意,这是.nuspec
文件的参考。如果要打包项目文件,通常会自动为您生成。
使用packages.config
或PackageReference
的项目有两种使用NuGet软件包的方式(.NET Core使用的SDK项目仅支持PackageReference
)。为packages.config
项目安装软件包时,NuGet将查看content
中nupkg
目录下的所有文件,并将它们复制到项目的文件夹中。另一方面,使用PackageReference
的项目将不会复制文件,而是在全局程序包文件夹中的程序包的contentFiles
目录中为文件创建MSBuild Content项目。因此,如果您想支持软件包用户,无论他们使用packages.config
还是PackageReference
,都需要在content
和contentFiles
目录中复制内容文件{1}}。如果打包SDK样式的项目,打包目标将自动将所有内容项添加到nupkg
的{{1}}和content
目录中。
因此,您需要考虑程序包的用户如何使用json文件(无论他们将使用contentFiles
还是nupkg
,以及文件一旦放在他们的文件上将如何处理电脑)。如果它们只是以编程方式使用,那么将json文件作为嵌入式资源嵌入到程序集中可能会更容易,并为他们提供一种调用方法以将文件作为字符串获取。这样,packages.config
和PackageReference
之间的区别就不相关了。