在问过这个问题后,我被建议不要将二进制文件检入到Subversion中。那么我的问题是,对于需要放置在bin文件夹中的第三方DLL文件,我该怎么办?我需要能够检出一个可运行的副本,并且具有所有DLL文件等内容以作为网站运行。
根据您其他问题的回答,建议您不要将任何生成的文件提交到Subversion。bin文件夹中的DLL通常作为应用程序的一部分进行构建,因此应该重新生成而不是存储在Subversion中。
如果DLL是第三方DLL且您没有源代码,那么我会将它们存储在Subversion中。您应该将所有需要重新创建应用程序的内容都放入Subversion中。这意味着您的源代码和第三方库或程序。
我总是将第三方DLL检入到一个“lib”文件夹中,这样应用程序可以从头开始建立和运行。 我认为“不要检入二进制文件”的规则适用于您检入的源代码生成的二进制文件。
就像Ben所说的一样,我不会将经常更改的二进制文件放入源代码控制中。但是第三方dll文件,它们最终也会被放在我的svn的lib文件夹中。
仅仅因为一个文件是二进制的,并不意味着你不应该检查它。警告应该是不要将派生对象提交到代码库中。你应该始终能够从源代码重新构建所有的派生对象。这可能意味着你需要在代码库中存储第三方二进制文件。
这些准则很简单:
--
* 程序、工具和服务包是显而易见的例外。但它们必须列在一个有版本控制的文件中。
我会将所有必需的DLL文件放置在工程的DLL目录中,并从那里引用它们(使用复制到本地功能)。然后它们可以被包含在同一个代码库/文件夹中,或者通过svn-external从远程位置带入(如果它们需要跨多个工程共享)。