背景:我和我的同事正在开发asp.net mvc项目...我们有一台计算机作为服务器工作,项目将存储在...我们每个人都有一个项目的副本我们设置了乌龟cvs。
问题: 当你想提交一些东西时,你提交了哪些文件?.. asp.net报告了许多dll文件,csproj文件,cs和sln文件,这些文件看起来与服务器的不同。
也许我的问题不是我应该问的正确的问题所以我希望能够深入了解团队工作的最佳方法。
答案 0 :(得分:4)
每当您从项目中添加或删除内容时,都应提交基本的csproj文件,以确保项目具有所有正确的文件。解决方案(sln)是一个很好的提交,出于同样的原因,虽然我也看到它没有。当然,你也想提交任何cs文件,因为它们是事物的主要焦点。
DLL文件只应在外部引用时提交 - 项目的内部dll可以忽略,因为它们将由每台计算机依次构建。您还希望避免使用.user文件。在提交时,忽略每个目录的'bin'和'obj'文件夹。
答案 1 :(得分:1)
你真的不应该检查项目可以生成的任何东西。因此,无需检查bin或obj文件夹或类似的内容,您还希望忽略任何用户首选项文件。
这包括dll,除非他们是第三方dll,然后你想要检查它们以确保每个人都在使用相同的版本,这样你就不必继续更改引用路径
答案 2 :(得分:1)
我不在asp.net工作,所以我会回答一般。 我们的版本系统有一个subversion代码库,cvs也很好用。开发人员从存储库中检索所有更新的代码,执行工作,确保其正常工作,执行另一个获取,重新编译,测试,然后将源代码更改提交到存储库。您可以定期使用工具或从存储库手动构建应用程序,并部署到测试服务器。不应将已编译的代码放在存储库中。
-Jay
答案 3 :(得分:1)
我们在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部署。 See this article by Phil Haack。因此,当一个新的开发人员上线所有他们必须检查后备箱,他们应该拥有他们需要的一切。使用CI服务器很简单,因为所有项目依赖项都由lib文件夹封装,所有visual studio项目都引用了该lib文件夹中的那些dll。
这有意义吗?
别介意核心文件夹和网络文件夹。这就是我们如何在解决方案中构建我们的项目。但那是whole other conversation。 :)
答案 4 :(得分:0)
除SVN中的BIN / OBJ文件夹外,我们保留所有内容。我们将所有第三方库放在一个单独的文件夹中,引用它们。
善,
丹
答案 5 :(得分:0)
如果您使用的是数据库更改管理工具,例如Tarantino,那么您还需要签入SQL更改脚本和/或填充脚本。我们的“核心”解决方案中有一个文件夹,我们保留这些文件夹,即“核心/数据库/更新”。我们使用SQL Compare查找数据库中的更改,然后检查这些SQL更改脚本,以便其他开发人员可以在本地运行它们。我们有一个非常规的任务设置来调用Tarantino来同步其他构建环境(Dev,QA)并运行任何新的更改脚本。