有什么建议可以让我的项目每次都以新的结账方式编译?

5 .net version-control build-process vcs-checkout

比我更愿意承认我有一个新项目的人做结帐只是发现他们缺少各种资源,dll,设置.我想养成一个正确的习惯,让我的项目编辑顺利,可以从一个新的结账.

有关如何构建项目的一些提示或建议,以便在从版本控制中重新检查时没有编译问题?

我已经开始在我的项目中保留一个"Resources"文件夹,其中包含源代码管理中所有需要的dll引用.其他人可以提出一些建议吗?

si6*_*618 2

假设您在 Visual Studio 环境中,这里有一些您可能会发现有用的东西,YMMV 当然,请注意我们使用 Subversion,但任何 VCS 工具都应该这样做...

  • 将所有(或尽可能多的)依赖项置于版本控制之下,并在项目中引用它们。我们使用 Subversion 外部来管理它。
  • 不要对标准输出目录(bin、obj)进行版本控制,即使用 svn:ignore
  • 同样,忽略版本控制用户项(*.user、*.suo)
  • 另外,不要对配置文件 (App|Web.config) 进行版本控制,而是创建 App.default.config 并在项目的 BeforeBuild 任务中将此文件复制到 App.config。这允许您通过使用 RegEx 和令牌来设置每个开发人员或构建服务器的编译,它还允许您删除 CI 构建上的任何现有 App.config 文件,以确保每次都是原始构建。这也使得开发人员可以随意修改配置,而不必打扰其他人,直到他们准备好为止,即更新 App.default.config。
  • 版本控制其他一切:)
  • 如果您需要对编译后的二进制文件(MSI、DLL 输出等)进行版本控制,请在 AfterBuild 目标项目(wixproj 等)中将输出复制到受版本控制的另一个目录。使用 Subversion 的一个技巧是,您可以添加/提交到 svn:externals 目录,该目录允许您将库等推送到引用它们的项目中。

最后提示 - 完成彻底检查并成功编译后,检查工作副本中是否有任何修改,例如 TortoiseSVN -> 检查修改。如果检测到更改,则可能需要忽略这些文件。