如何通过nuget包共享源代码,以便在.NET Core项目中使用

我想在.NET Core项目(.csproj)中使用可用的小部分源代码(例如帮助程序类)。 此时,我根据不同的博客文章和官方nuget文档,以许多不同的方式使用NuGet打包源代码。 我使用了一个nuspec文件来控制我的源文件最终会在nuget包中的位置,例如:

    

我没有包含任何msbuild目标文件或安装脚本。

每当我将NuGet包安装到.NET Core项目( https://docs.microsoft.com/en-us/dotnet/core/tools/csproj )时,我根本就没有得到任何东西。 我的项目中不会包含任何源文件。 我尝试了.csproj(PrivateAssets等)中的节点的不同设置,但没有成功。

这有可能吗? 如果是这样,应该怎么做?


背景:
这样做的原因是某种钻石问题,我们有项目B和C都使用辅助类A和第三个项目D使用B和C.在这种情况下,我不想处理不同时的汇编版本冲突(在B和C中使用了不兼容的A版本。

这有可能吗? 如果是这样,应该怎么做?

答案是肯定的。 由于您测试项目类型是.net核心。 您应该使用contentFiles而不是contentcontent用于packages.config。 检查使用contentFiles元素查找内容文件和博客NuGet ContentFiles Demystified以获取更多详细信息。

所以你的.nuspec文件应该是:

    MyTestCore 5.0.0 TestContentFile TestContentFile false Package Description         

nuget包应该看起来像:

在此处输入图像描述

注意:创建新包时,不要忘记在C:\Users\\.nuget\packages文件夹中删除此包的nuget缓存,否则,它始终安装旧包。

在此处输入图像描述

使用此方法,源文件将包含在项目中。

希望这可以帮助。