NuGet包,主动开发和参考
本文关键字:开发 参考 NuGet | 更新日期: 2023-09-27 18:23:43
我们有一个包含所有共享程序集的解决方案。目前,我们正在基于相对路径(../../../../SharedSolution/bin)引用这些程序集。最好创建一个nuget包(或一些基于各种依赖项的包)来引用这些程序集中,这样我就可以轻松更新,而且我不必担心与团队中的其他人拥有完全相同的目录结构以及nuget的所有其他好处。
然而,假设我在ProjectA解决方案中工作时,我意识到我需要进行更改或向SharedSolution添加共享类。在我的ProjectASolution中,如果我使用nuget包引用了SharedSolution中的程序集,但我想在提交之前测试对SharedSolution的更改,那么将程序集从SharedSolution bin复制到ProjectASolutions的packages文件夹的唯一方法是什么
由于我们经常在SharedSolution中编辑类,我开始认为nuget可能不是共享这些程序集的正确方式。
另一个可能的解决方案是将SharedSolution中的项目作为链接添加到任何需要引用它们的ProjectSolutions。这是更好的选择吗?
有没有比相对路径更好的方法来共享这些程序集有没有一种简单的方法可以测试在开发机器上对nuget包所做的更改
您可以构建预发布包。只有将nuget设置为使用预发布包的开发人员才能看到它们,其他人仍将使用最新的稳定版本。
在NuGet预发布包页面上可以找到一个很好的解释和操作方法。
为了解决您在评论中提出的问题:
您可以基于.nuspec文件在本地构建nuget包,该文件通常位于packages文件夹中的.nupkg文件旁边。您可以使用NuGet软件包资源管理器在GUI中执行此操作。
要分发它们,可以将预发布包存储在网络文件夹中。任何对预发布包感兴趣的开发人员都可以将此网络文件夹添加到他们的nuget源中,然后可以像往常一样使用Visual Studio集成的nuget。或者你可以把.nupkg文件复制给他们。
在发布新包之前,应该对程序集使用尽可能多的自包含测试。理想情况下,你将要放入NuGet包中的任何东西都将完全由单元测试覆盖,如果必要的话,还可以使用某种测试应用程序。
此外,如果您要使用NuGet,如果可能的话,我会考虑拆分其中一些程序集。如果包位于逻辑分离的集合中,而不是一个大型包中,那么维护引用和跟踪包的真实更新会更容易。