万无一失的调试与发布

时间:2015-10-26 17:51:50

标签: .net tfs msbuild release

我很担心自己,在调试应用程序时,我的团队其他成员将忘记在VS中将解决方案配置下拉从发布切换到调试。

我们通过代码库进行了#If DEBUG次检查,以防止发生电子邮件,数据库数据更改和文件系统更改(使用DI缓慢重构)。

我一直在考虑使用MSBuild或TFS创建一个配置文件,其中包含一些指示发布版本的设置。这个配置文件不会被签入。我在这里看到的问题是,如果我们部署我们的应用程序,无论出于何种原因缺少配置文件,应用程序将默默地写入我们的dev依赖项。

我们也希望能够在登台环境中运行。

有没有更好的方法来处理这个问题,以便开发人员不是F5,而不是写入生产,或者我们不将调试代码部署到生产中?

2 个答案:

答案 0 :(得分:1)

  

是否有更好的方法来解决这个问题,以便开发人员不会将F5从写入生产转移到我们不会将调试代码部署到生产

  • 永远不要让开发人员实际访问生产。他们的.config文件中不应该有生产凭据(连接字符串等),并且他们在任何情况下都不应该具有对生产的物理访问权。
  • 使用构建服务器为QA和Production创建构建。我们使用TeamCity,但有几个不错的选择。

答案 1 :(得分:0)

我可以肯定地说,你需要摆脱你的方法,这将是灾难性的。根据开发人员的不同,开关永远不会长期使用。

有很多方法可以解决这个问题,我们遵循的方法是:

  • 为每个环境(DEV / IT / QA / PROD)创建单独的配置文件
  • 在服务器上,有一个标记环境的机制(注册表    或文件或其他内容)
  • 在部署期间,我们的脚本读取环境(从注册表)    并放置正确的配置文件。这种方法的优点    是因为我们不需要为DEV与IT和QA vs分别建立单独的构建    刺。