繁体   English   中英

什么ASP.NET MVC项目文件应保存在存储库中?

[英]What ASP.NET MVC project files should be kept in a repository?

背景:我和我的同事正在开发asp.net mvc项目...我们有一台计算机作为服务器工作,项目将存储在...我们每个人都有一个项目的副本,我们得到了乌龟cvs成立。

问题:当你想提交一些东西时,你提交的文件到底是什么?.. asp.net报告了许多与服务器不同的dll文件,csproj文件,cs和sln文件。

也许我的问题不是我应该问的正确的问题,所以我希望能够深入了解哪些是团队合作的最佳方法。

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

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

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

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

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

-Jay

我们在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

我们将所有第三方依赖项放入lib文件夹中。 包括MVC,可以进行bin部署。 请参阅Phil Haack撰写的这篇文章 因此,当一个新的开发人员上线所有他们必须检查后备箱,他们应该拥有他们需要的一切。 使用CI服务器很简单,因为所有项目依赖项都由lib文件夹封装,并且所有visual studio项目都引用了该lib文件夹中的那些dll。

那有意义吗?

别介意核心文件夹和Web文件夹。 这就是我们如何在解决方案中构建我们的项目。 但那是另一个完整的对话 :)

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

善良,

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM