在多个.NET Core项目之间共享代码

3
我想知道如何在两个或多个.NET Core项目(命令行项目!)之间共享C#源代码。据我所知,在xproj/project.json项目中,无法链接到不同目录中的源文件。我注意到现在似乎推荐为所有内容创建nuget包。但是,我必须设置一个私有存储库并创建nuget包,只能共享一些常见的源单元吗?VS2015包含一个.NET Core库模板,可用于构建共享库。是否可以将此库链接到没有nuget包的项目中?
2个回答

3

.NET Core库是一个非常优秀的解决方案。

与标准C#解决方案一样,只需创建项目并引用该项目或添加对DLL文件的引用即可。

你不需要为了自己的目的使用Nuget。Nuget包可用于在外部分发你的dll。


澄清:

我漏掉了一个要点 - 我正在使用VS2015,但我已经将Class Library项目包含在我的解决方案中,并且通过项目进行引用,在ASP.Net Core中可以正常工作。

我还有另一个项目,直接引用DLL文件也可以正常工作,但这是之前版本的ASP.NET应用程序(不是Core)- 看起来NET Core还不支持这种方式(至少现在还没有)。

抱歉让你感到困惑,有时候太多技术会让人迷茫;)


所以,你可以将ClassLibrary项目包含到你的解决方案中,并将其作为项目进行引用吗?


你使用的是哪个版本的VS?我刚刚尝试了你建议的方法,使用VS2015,但是出现了以下提示:在此版本中,.NET Core项目仅支持引用.NET框架程序集。要引用其他程序集,它们需要包含在NuGet包中并引用该包。 - NicolasR
抱歉,我漏掉了一个要点 - 技术太多了 ;) - 是的,我正在使用VS2015,但我已经在我的解决方案中包含了类库项目,并且我是通过项目引用而不是DLL文件引用的方式进行引用,在ASP.Net Core中这个方法可以正常工作。我还有一个不同的项目,其中我直接引用了几个DLL文件,但这是之前版本的ASP.NET应用程序(不是Core)。所以你能否将ClassLibrary项目包含到你的解决方案中,并将其引用到那些项目中呢? - Lukasz Mk
好的,跨项目引用似乎可以工作。这是我情况下可接受的解决方案。 - NicolasR

1
我通过使用源代码控制从我的常用项目中分支出每个新解决方案,并在进行任何更改后再次合并回主分支来实现这一点。
另外,考虑到NuGet只是一组存档文件,您可以将此NuGet包保留在本地,甚至创建一个默认具有常用库的Visual Studio模板。
有很多可能性取决于您的喜好和当前环境状态(例如:能够设置源代码控制或软件包存储库)。

使用源代码控制系统的想法很有趣。不幸的是,我正在寻找专门针对小型测试/边缘项目的解决方案,我想在1到10个源文件之间共享,有时甚至不将这些项目纳入源代码控制!对于较大的项目,我更喜欢本地Nuget解决方案,但对于小项目来说,我认为Lukasz Makowejs的解决方案中的跨项目引用最容易适合我。 - NicolasR

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接