2

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

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

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

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

有没有比相对路径更好的方法来共享这些程序集? 有没有一种简单的方法可以测试在开发机器上对 nuget 包所做的更改?

4

2 回答 2

2

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

可以在NuGet 预发布包页面上找到很好的解释和操作方法。

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

您可以基于 .nuspec 文件在本地构建 nuget 包,该文件通常位于包文件夹中的 .nupkg 文件旁边。您可以使用NuGet 包资源管理器在 GUI 中执行此操作。

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

于 2013-07-18T14:48:50.503 回答
1

在发布新包之前,您应该对程序集使用尽可能多的独立测试。理想情况下,您将放入 NuGet 包的任何内容都将被单元测试完全覆盖,如有必要,还可以使用某种测试应用程序。

此外,如果您要使用 NuGet,我会尽可能拆分其中的一些程序集。如果它们在逻辑上分离的集合中而不是一个巨型包中,则更容易维护引用和跟踪包的实际更新。

于 2013-07-18T15:04:36.420 回答