通过nuget共享JSON文件的最佳方法?

时间:2019-03-27 15:14:14

标签: json nuget

我有一个JSON模式,描述了如何与正在开发的.NET微服务进行通信。我想在nuget文件中与希望通过Kafka与我通信的其他服务共享此JSON模式(以及其他各种poco对象)。

我的问题是,如何使用nuget共享此文件?共享poco对象很简单,但是我不确定如何共享静态JSON文件之类的东西,也不确定此nuget包的使用者将如何引用并使用该JSON文件。

我尝试搜索nuget文档,但找不到任何东西。这可能吗?

1 个答案:

答案 0 :(得分:1)

Here are the docs on content files in nupkgs,但请注意,这是.nuspec文件的参考。如果要打包项目文件,通常会自动为您生成。

使用packages.configPackageReference的项目有两种使用NuGet软件包的方式(.NET Core使用的SDK项目仅支持PackageReference)。为packages.config项目安装软件包时,NuGet将查看contentnupkg目录下的所有文件,并将它们复制到项目的文件夹中。另一方面,使用PackageReference的项目将不会复制文件,而是在全局程序包文件夹中的程序包的contentFiles目录中为文件创建MSBuild Content项目。因此,如果您想支持软件包用户,无论他们使用packages.config还是PackageReference,都需要在contentcontentFiles目录中复制内容文件{1}}。如果打包SDK样式的项目,打包目标将自动将所有内容项添加到nupkg的{​​{1}}和content目录中。

因此,您需要考虑程序包的用户如何使用json文件(无论他们将使用contentFiles还是nupkg,以及文件一旦放在他们的文件上将如何处理电脑)。如果它们只是以编程方式使用,那么将json文件作为嵌入式资源嵌入到程序集中可能会更容易,并为他们提供一种调用方法以将文件作为字符串获取。这样,packages.configPackageReference之间的区别就不相关了。