【发布时间】:2012-11-11 06:52:09
【问题描述】:
我有一个类库项目,其中包含在我的项目中使用的通用代码,并且我使用 subversion 作为源代码控制。
我对管理解决方案、项目和代码的可用性有一些疑问。
我想在项目之间共享这个类库,当我更新它时,更新很容易应用于所有项目。我在哪里可以找到这个类库以在项目之间共享并提高源代码控制、可用性和...?
有什么想法吗?
【问题讨论】:
标签: c# svn version-control
我有一个类库项目,其中包含在我的项目中使用的通用代码,并且我使用 subversion 作为源代码控制。
我对管理解决方案、项目和代码的可用性有一些疑问。
我想在项目之间共享这个类库,当我更新它时,更新很容易应用于所有项目。我在哪里可以找到这个类库以在项目之间共享并提高源代码控制、可用性和...?
有什么想法吗?
【问题讨论】:
标签: c# svn version-control
您可以使用 NuGet 包作为分发 DLL 的一种方式 - 构建您的通用程序集,pack 将结果构建到特定目录中,并将该目录用作 NuGet 包管理器的存储库。 NuGet 选项的一部分是自动下载最新的包版本,因此每当您打开解决方案时,包管理器都会扫描存储库以查找较新版本并下载它(如果有的话)。
这里有一个非常简单的教程:http://juristr.com/blog/2012/04/using-nuget-to-distribute-our-company/
【讨论】:
您可以使用多种方法:
您可以从一个地方将此项目作为现有项目添加到所有解决方案中。这是最简单的方法,但是当它在一个解决方案中更改时,所有其他解决方案都可能被破坏。
您可以将公共库项目分支到所有解决方案,作为不同的 brunch。在这种情况下,当您在一个解决方案中更改它时,所有其他解决方案都不会停止,但您应该花费大量时间来合并来自公共库的所有早午餐的更改。
【讨论】:
一个解决方案可以包含许多项目,因此您可以有效地将类库项目放在任何地方,并根据需要从每个新解决方案中引用它。这意味着您的机器上只有一份源代码副本。
当你构建每个项目时,它会在必要时编译类库,所以你需要做的就是有一些过程来保持源代码是最新的。
【讨论】: