NuGet包,主动开发和参考

时间:2013-07-18 14:35:48

标签: c# .net nuget

我们有1个包含所有共享程序集的解决方案。目前,我们基于相对路径(../../../../../SharedSolution/bin)引用这些程序集。创建一个nuget包(或几个基于各种依赖项)来引用这些程序集会很好,这样我就可以轻松更新,而且我不必担心拥有与团队中其他人完全相同的目录结构。 nuget的所有其他好处。

但是,让我们说当我在ProjectASolution中工作时,我意识到我需要对SharedSolution进行更改或添加共享类。在我的ProjectASolution中,如果我使用nuget包引用了SharedSolution中的程序集,但 我想在提交之前测试我对SharedSolution的更改,是将程序集从SharedSolution bin复制到ProjectASolution包的唯一方法文件夹?

由于我们经常在SharedSolution中编辑类,我开始认为nuget可能不是分享这些程序集的正确方法。

另一种可能的解决方案是将SharedSolution中的项目添加为我需要引用它们的任何ProjectSolutions的链接。这是一个更好的选择吗?

有没有比相对路径更好的方式来共享这些程序集? 是否有一种简单的方法可以测试dev计算机上对nuget包所做的更改?

2 个答案:

答案 0 :(得分:2)

您可以构建预发布包。只有那些将其nuget设置为使用预发布包的开发人员才会看到它们,其他人仍然会使用最新的稳定版。

可以在NuGet Pre-Release Package页面找到一个很好的解释和操作方法。

解决您在评论中提出的问题:

您可以根据.nuspec文件在本地构建nuget包,该文件通常位于packages文件夹中的.nupkg文件旁边。您可以使用NuGet Package Explorer在GUI中执行此操作。

要分发它们,您可以将预发行包存储在网络文件夹中。任何对预发布包感兴趣的开发人员都可以将此网络文件夹添加到他们的nuget源,然后可以像往常一样使用Visual Studio集成的nuget。或者您可以将它们复制到.nupkg文件中。

答案 1 :(得分:1)

在发布新包之前,您应该为程序集使用尽可能多的自包含测试。理想情况下,您将在NuGet包中添加的任何内容都将完全由单元测试覆盖,如有必要,还可以使用某种测试应用程序。

另外,如果您打算使用NuGet,我会考虑尽可能拆分其中的一些程序集。如果它们是逻辑上分离的集合而不是一个大型软件包,那么维护引用并跟踪包的真实更新会更容易。