【问题标题】:SVN and binariesSVN 和二进制文件
【发布时间】:2008-10-10 14:19:18
【问题描述】:

在询问this question 后,有人建议我不要将二进制文件签入颠覆。我的问题是,我该如何处理需要在 bin 文件夹中的第 3 方 dll?我需要能够签出工作副本并将其作为网站运行,并且所有 dll 等都完好无损。

【问题讨论】:

    标签: svn


    【解决方案1】:

    您的其他问题的答案建议您不要将任何生成的文件提交给颠覆。 bin 文件夹中的 DLL 通常是作为应用程序的一部分构建的,因此,它们应该重新生成而不是存储在 subversion 中。

    如果 DLL 是您没有源代码的第 3 方 DLL,那么我会将它们存储在 subversion 中。您应该将重新创建应用程序所需的所有内容都放入 subversion 中。这意味着您的源代码和第 3 方库或程序。

    【讨论】:

    • 您好,我同意您的回答。但是,我已经为 *.dlls 设置了全局忽略,现在我无法将新的二进制文件从 Visual Studio 提交到 SVN!知道如何将其导入现有项目吗?
    【解决方案2】:

    我总是签入第三方 DLL(到“lib”文件夹中),以便应用程序可以从新签出处构建和运行。我认为“不签入二进制文件”规则适用于由您签入的源代码生成的二进制文件。

    【讨论】:

      【解决方案3】:

      仅仅因为文件是二进制文件,您不应该检查它。警告应该反对将派生对象签入存储库。您应该始终能够从源代码再次构建所有派生对象。这可能意味着您需要在存储库中拥有第三方二进制文件。

      【讨论】:

        【解决方案4】:

        指南很简单:

        • 重建解决方案所需的所有内容都应在 * 中检查
        • 在构建过程中生成的任何东西 - 都必须远离

        --
        * 程序、工具、服务包是这条规则的明显例外。但它们必须列在一个版本化的文件中。

        【讨论】:

          【解决方案5】:

          就像本说的。我不会将经常更改的二进制文件放入源代码控制中。但是第三部分的 dll,是的,它们最终也出现在我的 svn 上的 lib 文件夹中。

          【讨论】:

            【解决方案6】:

            我在项目的 DLL 目录中包含任何必需的 DLL,并从那里引用它们(复制到本地)。然后它们可以包含在同一个存储库/文件夹中,或者使用 svn-external 从远程位置引入(如果它们在多个项目之间共享)。

            【讨论】:

              【解决方案7】:

              理想情况下,SVN 存储库应该需要构建目标所需的每个文件。因此,如果您购买了一台全新的计算机,安装了编译器和 SVN,然后检查了存储库 - 您可以构建而无需查找任何其他依赖项。因此,第 3 方库将被放入存储库中,但目标不是。

              如果您正在对安装映像进行 SVN 处理,则例外情况。我们在这里这样做,但在我们的生产人员使用的一组不同的存储库中(程序员不使用)。

              【讨论】:

                【解决方案8】:

                如果二进制文件是指可执行文件,最佳做法是从源代码重新生成它们 - 如果源代码可用。如果二进制文件是指非文本文件,我可以告诉你,我一直使用 SVN 来存储非文本文件(jpg 图像、Visio 文件、bmp 文件、带有图像和图表的 MS Word 2003 文档、MS Project 文件和类似的文件。我从来没有遇到过任何损坏或类似的问题。在 SVN 中存储和管理所有内容非常方便。

                【讨论】:

                  【解决方案9】:

                  在一个干净设计和维护的环境中,您应该拥有自己的 NuGet 服务器,您可以在其中推送您的 DLL 甚至 3rd 方 DLL/二进制文件,您的代码应该从本地 NuGet 服务器下载所有必需的 DLL,所以不要提交SVN 的二进制文件仍然有效。

                  【讨论】:

                    【解决方案10】:

                    事实上,SVN 存储二进制文件的效率比 CVS 高很多,更多信息请参阅SVN-FAQ

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 2010-09-16
                      • 1970-01-01
                      • 1970-01-01
                      • 2015-12-14
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多