【问题标题】:What ASP.NET MVC project files should be kept in a repository?哪些 ASP.NET MVC 项目文件应保存在存储库中?
【发布时间】:2017-04-24 21:26:01
【问题描述】:

背景:我和我的同事正在研究 asp.net mvc 项目...我们有一台计算机作为服务器,该服务器将存储该项目...我们每个人都有该项目的副本然后我们设置了乌龟 cvs。

问题: 当你想提交某些东西时,你究竟提交了哪些文件?..asp.net 报告了许多看起来与服务器不同的 dll 文件、csproj 文件、cs 和 sln 文件。

也许我的问题不是我应该问的正确问题,所以我希望能了解一下什么是小组工作的最佳方法。

【问题讨论】:

    标签: asp.net asp.net-mvc version-control


    【解决方案1】:

    每当您从项目中添加或删除内容时,都应提交基本的 csproj 文件,以确保项目具有所有正确的文件。出于同样的原因,解决方案 (sln) 是一个很好的解决方案,尽管我也看到它没有完成。当然,您还想提交任何 cs 文件,因为它们是事情的主要焦点。

    只有在外部引用时才应提交 DLL 文件——项目的内部 dll 可以忽略,因为它们将由每台计算机依次构建。您还希望避免不必要的 .user 文件。在提交时也忽略每个目录的“bin”和“obj”文件夹。

    【讨论】:

      【解决方案2】:

      您真的不应该签入项目可以自行生成的任何内容。所以不需要检查你的 bin 或 obj 文件夹或类似的东西,你也想忽略任何用户首选项文件。

      这包括 dll,除非它们是第三方 dll,然后您需要检查它们以确保每个人都在使用相同的版本,这样您就不必不断更改引用路径.

      【讨论】:

      • 我们在解决方案中使用 Lib 文件夹并从那里引用第 3 方 Dll。排除 BIN/OBJ 是要走的路 :) 我们也有 MVC dll,因为我们自预览版以来一直在使用。它使升级更容易。
      【解决方案3】:

      我不在 asp.net 工作,所以我会笼统地回答。 我们的版本系统有一个 subversion 代码存储库,cvs 也很好用。开发人员从存储库中检索所有更新的代码,执行工作,确保其正常工作,再次获取、重新编译、测试,然后将源代码更改提交到存储库。您可以定期使用工具或从存储库手动构建应用程序,然后部署到测试服务器。不应将编译后的代码放在存储库中。

      -杰

      【讨论】:

        【解决方案4】:

        我们在 SVN 中使用以下项目结构(但这也适用于 CVS)。

        + tags
        + branches
        > trunk
          + build (build scripts)
          + lib (external libraries)
          > src (source code)    
           >> Organization.App (solution name)
             >> Organization.App.Core (code library)
                + Config
                > Domain
                  > Model
                  > Persistence
                  > Queries
                  > Services
                > Persistence
                > Services
             >> Organization.App.Web (mvc web app)
                > Assets
                  + Images
                  + Scripts
                  + Stylesheets
                + Controllers
                + Views
                + ViewModels
        

        我们将所有第 3 方依赖项放入 lib 文件夹。包括MVC,可以bin部署。 See this article by Phil Haack。因此,当一个新开发人员上线时,他们要做的就是检查后备箱,他们应该拥有开始工作所需的一切。使用 CI 服务器很容易,因为所有项目依赖项都封装在 lib 文件夹中,并且所有 Visual Studio 项目都引用了该 lib 文件夹中的那些 dll。

        这有意义吗?

        别管 core 文件夹和 web 文件夹。这就是我们在解决方案中构建项目的方式。但那是whole other conversation。 :)

        【讨论】:

        • 雄辩而准确!最佳答案!
        • Pssst 服务是应用层! (或领域层,但我看到你没有应用层)
        【解决方案5】:

        除了 BIN/OBJ 文件夹之外,我们将所有内容保留在 SVN 中。我们将所有第三方库放在一个单独的文件夹中,从中引用它们。

        善良,

        【讨论】:

          【解决方案6】:

          如果您使用数据库更改管理工具,例如Tarantino,那么您还需要签入 SQL 更改脚本和/或填充脚本。我们的“核心”解决方案中有一个文件夹,我们将这些文件夹保存在其中,即“核心/数据库/更新”。我们使用 SQL 比较来查找数据库中的更改,然后签入这些 SQL 更改脚本,以便其他开发人员可以在本地运行它们。我们有一个 nant 任务设置来调用 Tarantino 以同步其他构建环境(Dev、QA)并运行任何新的更改脚本。

          【讨论】:

            猜你喜欢
            • 2020-11-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-05-04
            • 1970-01-01
            相关资源
            最近更新 更多