配置文件中个别程序员的设置

时间:2011-06-03 15:56:50

标签: c# asp.net visual-studio

我想知道是否有办法在个人程序员的配置文件中创建设置。我遇到的情况是,有些程序员想要打开设置,有些程序员想要关闭它们。我们的配置文件在SVN源代码控制中,因此使用共享配置文件意味着我们总是覆盖彼此的设置。我们正在为ASP.NET Web应用程序项目执行此操作。我最初的想法是在源代码控制之外创建一个配置文件,但是如何让它成为每个程序员都拥有自己的副本?

这是一些进一步的澄清。我们在主web.config文件中有一个链接指向基于环境的文件(例如用于dev,staging和live的文件)。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings configSource="EnvironmentConfigs\appSettings.config" />
  ...
</configuration>

在appSettings.config文件中,我们有dev,staging和live的设置。我想要做的是创建另一个名为user.config的配置文件,并将各个程序员设置存放在那里(当然不在源代码管理中)。为了让Visual Studio从这个新文件中读取,我需要做什么?

5 个答案:

答案 0 :(得分:2)

设置文件不需要在SVN中进行版本控制,或者每个开发人员都可以选择其设置文件,以免被覆盖或提交。请参阅SVN设置文件,它甚至可以添加为全局忽略。

答案 1 :(得分:1)

每个开发人员都可以在Visual Studio中设置自己的构建配置。此构建配置应链接到构建脚本,该脚本将特别替换为开发人员所需的Web.Config / App.Config / * .Config文件的各个部分。

这样,当他们想要更改配置文件以适应自己时,他们应该更改构建脚本中的替换,而不是直接更改配置文件。

本文介绍了我提到的一些要点:http://www.diaryofaninja.com/blog/2010/05/09/automated-site-deployments-with-teamcity-deployment-projects-amp-svn

答案 2 :(得分:0)

从源代码管理中删除配置文件,并在其上设置svn:ignore属性。然后它不会被提交。然后,还要创建另一个文件,例如Production.web.config,其中包含生产值,因此您仍然可以保留这些文件。

这就是我的所作所为!

答案 3 :(得分:0)

不要提交配置文件更改,除非它们是要发送给每个人的新设置。

否则,结帐,编辑并将其签出。当您获得最新版本时,您将知道其他人是否添加/修改了该文件。此时您将设置与其更改合并,但请将其保留在您的计算机上。

答案 4 :(得分:0)

我们不将应用程序配置文件存储在源代码管理中。相反,在源代码管理中,我们存储了一个配置文件 template ,通常命名为web.config.template。每个开发人员都有自己的“值”文件,例如通常名为web.config.values-bem。每个开发人员还设置一个提交后挂钩,它接受模板文件并对其进行处理,用指定值文件中的值替换“变量”。

例如,我的配置值文件中包含以下定义:

DB_SERVER=.\SQLEXPRESS

在web.config.template文件中,它存在:

connectionString="server=@DB_SERVER@[DEV1];Persist Security Info=True;Password=@DB_PW@;User ID=@DB_USER@;database=@DB_NAME@;Enlist=false;Max Pool Size=100" />

因此,当进程运行(python脚本)时,它会将@DB_SERVER@的所有实例替换为我在values文件中的设置。模板脚本也允许在模板中直接指定默认值,因此您可以更改模板文件,而不是破坏其他开发人员的环境(通常)。 (默认值在变量旁边,方括号中。)

此解决方案允许每个开发人员拥有自己的设置,但仍然有一个版本化的web.config.template文件,并且每个开发人员都避免对其他开发人员“造成”配置更改。

这对我们很有用。如果你想使用相同的方案,你可以在我的github上查看它的代码:https://github.com/bmontgomery/FileReplace。如果您对此感兴趣,我也可以帮助您使用钩子脚本。