首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让我的项目在每次新签出时编译的一些技巧是什么?

让我的项目在每次新签出时编译的一些技巧是什么?
EN

Stack Overflow用户
提问于 2009-01-13 00:55:40
回答 8查看 523关注 0票数 5

我不愿承认的是,我已经有很多次让刚接触项目的人结账,结果却发现他们丢失了各种资源,dll的设置。我想养成正确的习惯,让我的项目编译得像重新签出时一样顺畅。

关于如何组织我的项目,使它们在从版本控制中新签出时不会出现编译问题,有什么技巧或建议吗?

我已经开始在我的项目中保存一个"Resources“文件夹,其中包含源代码管理中所有需要的dll引用。还有没有人能提点建议?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-01-13 03:38:17

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

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

最后一个提示--在你做了一个干净的签出并成功编译之后,检查你的工作副本中是否有任何修改,例如TortoiseSVN ->检查是否有修改。如果检测到更改,则可能需要忽略这些文件。

票数 2
EN

Stack Overflow用户

发布于 2009-01-13 03:26:59

找到一台未使用的旧计算机,并将其设置为自动“滚动构建”:

  1. 等待有人将change
  2. 更新签入到所有文件的最新版本。
  3. 清除所有非源代码控制文件(仅make clean是不够的-扫描碎片并将其删除)
  4. Build。
  5. 运行单元测试。
  6. 每天一次,保存成功运行的二进制文件。将其称为当天的“官方构建”。

如果构建或测试失败,请发送带有错误的电子邮件。包括在#2中获得的更改列表。

如果你真的,真的找不到一台机器,那就在虚拟机里找吧。

票数 2
EN

Stack Overflow用户

发布于 2009-01-13 01:06:39

nmaven这样的工具可以帮助解决依赖问题(尽管您可能需要查看java maven文档中的信息……)

持续集成工具,如cruisecontrol,在每次签入后重复签出和构建您的应用程序,这可以提醒您签入会破坏构建...此外,它们还可以运行您的单元测试,从而提醒您签入引起的任何回归……

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/437633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档