2013-07-29 49 views
7

我们有一个开发数据库和一个生产数据库。我正试图防止的是必须改变:实时vs开发连接字符串

connectionString="Data Source=server;Initial Catalog=test; 
connectionString="Data Source=server;Initial Catalog=live; 

我们有两个地方我们部署网站。一个用于测试,一个用于测试。

有没有一种简单的方法来防止我们每次想要上传到测试或生活时都必须更改连接字符串?

我们使用团队基础服务器,我不知道如何设置构建服务器或构建定义,所以如果有任何问题寻找简单的东西。

+0

这些在你的web.config? http://msdn.microsoft.com/en-us/library/dd465326.aspx – cadrell0

+0

我使用慢猎豹为此,并创造奇迹。看到这里:http://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5 – Icarus

+0

我会首先解决你需要一个构建服务器的事实:http://stackoverflow.com/questions/616149/how一旦你做了,你可以通过多种方式解决你的问题。 –

回答

6

如果您正在开发ASP.NET应用程序,则可以使用web.config transforms来轻松指定每个环境之间的差异。构建过程将为您定位的任何环境生成适当的web.config

如果你建立一个桌面应用程序,我想看看Slow Cheetah它允许您使用相同的web.config变换你喜欢的任何XML文件,包括app.config功能。我们在我公司的许多项目中使用了这个功能,以简化我们各种环境之间的部署流程。

+0

我使用连接字符串中的差异设置了独立的Web.Debug.config和Web.Release.config。但是当我从调试/发布版中改变它时,它似乎仍然使用我的实时版本保留原始web.config。当我使用debug/release运行应用程序时,它使用实时版本。我错过了什么? –

+0

@JamesWilson如果您使用Visual Studio调试器,我相信它将始终使用默认的'web.config'而不进行任何转换。它只会在您部署它时应用转换。 –

3

您可以使用web.config.release来提及您的发布模式配置。这些是VS2010及以上的一部分。你可以很好地看看Scott Hanselman articlehere

这里需要注意的一点是,无论何时您调试到发布的转换都会发生在您publish your web site before deploying

+0

啊,所以变更的唯一方法是让我公开它?现在我们构建,然后将这些文件复制到dev/live文件夹。 –

+0

是的,你必须发布它们。 – Ehsan

1

找到设置持续集成构建的好教程。新版本的TFS处理得很好。

这是一个需要处理很多事情,但是值得付出努力。尝试为它的MSDN文章,去所有的默认选项,它不会那么糟糕。

让CI启动并运行,您将知道如何处理这些web.config转换(这将解决您的紧急问题)。但通过设置构建过程,您会发现部署变得更加容易。

+0

我同意这将是我希望很快走上道路的一条道路。阅读它提供的内容让我想要现在就做,但我无法完成这个最后期限。所以我现在需要一个便宜又脏的东西,然后是一个很好的解决方案。 ;) –

+0

哦,我知道那种感觉!祝你好运。 – evilbhonda