我需要在我的ASP中使用不同的数据库连接字符串和SMTP服务器地址。NET应用程序,这取决于它在开发环境或生产环境中运行的位置。

应用程序从Web读取设置。配置文件通过WebConfigurationManager。AppSettings财产。

我使用Build/Publish命令通过FTP将应用程序部署到生产服务器,然后手动替换远程Web。配置正确。

是否有可能以某种方式简化部署过程?谢谢!


当前回答

我也想知道。这有助于我隔离问题

<connectionStrings configSource="connectionStrings.config"/>

然后我保留一个connectionStrings。config以及“{host} connectionStrings.config”。这仍然是一个问题,但如果您对两个环境中不同的部分执行此操作,则可以部署和版本相同的web.config。

(顺便说一下,我不用VS。)

其他回答

你看过网络部署项目吗?

http://www.microsoft.com/downloads/details.aspx?FamilyId=0AA30AE8-C73B-4BDD-BB1B-FE697256C459&displaylang=en

如果你不是2008年的版本,VS2005也有一个版本。

我也想知道。这有助于我隔离问题

<connectionStrings configSource="connectionStrings.config"/>

然后我保留一个connectionStrings。config以及“{host} connectionStrings.config”。这仍然是一个问题,但如果您对两个环境中不同的部分执行此操作,则可以部署和版本相同的web.config。

(顺便说一下,我不用VS。)

我使用NAnt构建脚本部署到不同的环境中。我让它通过XPath修改我的配置文件,这取决于它们被部署到哪里,然后它使用Beyond Compare自动地将它们放入该环境。

设置需要一到两分钟,但你只需要做一次。然后批处理文件接手,我再去喝杯咖啡。:)

这是我找到的一篇文章。

Enterprise Library配置编辑器可以帮助您完成此操作。它允许您创建一个基本配置文件,然后为每个环境创建增量。然后,您可以合并基本配置和增量,以创建特定于环境的web.config。看看这里的信息,它比我更能让你理解它。

您还可以将其设置为构建后步骤。除了调试和发布之外,设置一个新的配置为“部署”,然后将构建后的步骤复制到正确的web.config上。

我们对所有的项目都使用自动构建,并使用这些构建脚本更新web。配置文件指向正确的位置。但如果你做的都是从VS开始的,那就没用了。