在开发版和实时版之间切换

时间:2010-01-26 01:17:06

标签: asp.net-mvc linq-to-sql

有没有人能够轻松切换asp.net mvc网站的开发和实时版本?每次我做一些更改我都需要更改以通过我的web.config并注释掉我所有的本地内容并取消注释我的所有远程设置。我还需要更新linq-to-sql dbml文件以指向正确的连接字符串。

每次我在控制器中进行更改时都会发生这种情况。上传更改后,我必须执行相同的过程并将其恢复为开发(本地)模式。

是否有自动处理方法,或者至少有一个可以在两者之间标记的设置?

由于

2 个答案:

答案 0 :(得分:1)

我所做的一种方法是制作两组配置设置

<LiveSomeSetting>something</LiveSomeSetting>
<TestSomeSetting>anotherthing</TestSomeSetting>

然后在我的班级中读取配置信息,我会查看类似系统环境/计算机名称的内容,如果适用于LIVE机器的名称,请查看设置......否则开发。

if (System.Environment.MachineName.ToLower().StartsWith("devMachineName"))
   IsLive = "Test";
else
   IsLive = "Live";

Application["IsLive"] = IsLive;
SomeSetting = ConfigurationManager.AppSettings[IsLive + "SomeSetting"];

答案 1 :(得分:0)

我使用了一种简单的技术,Scott Hanselman在1997年发表了博客。它主要涉及为每个构建类型维护单独的web.config文件。然后有一个预构建事件,它将正确的web.config复制到位。

它确实有不得不维护2个以上web.config文件的缺点,但是一旦你启动并运行它就不是那么大的问题。

看看这篇文章:
Managing Multiple Configuration File Environments with Pre-Build Events

HTHS,
查尔斯