我需要在我的ASP中使用不同的数据库连接字符串和SMTP服务器地址。NET应用程序,这取决于它在开发环境或生产环境中运行的位置。
应用程序从Web读取设置。配置文件通过WebConfigurationManager。AppSettings财产。
我使用Build/Publish命令通过FTP将应用程序部署到生产服务器,然后手动替换远程Web。配置正确。
是否有可能以某种方式简化部署过程?谢谢!
我需要在我的ASP中使用不同的数据库连接字符串和SMTP服务器地址。NET应用程序,这取决于它在开发环境或生产环境中运行的位置。
应用程序从Web读取设置。配置文件通过WebConfigurationManager。AppSettings财产。
我使用Build/Publish命令通过FTP将应用程序部署到生产服务器,然后手动替换远程Web。配置正确。
是否有可能以某种方式简化部署过程?谢谢!
当前回答
您还可以将其设置为构建后步骤。除了调试和发布之外,设置一个新的配置为“部署”,然后将构建后的步骤复制到正确的web.config上。
我们对所有的项目都使用自动构建,并使用这些构建脚本更新web。配置文件指向正确的位置。但如果你做的都是从VS开始的,那就没用了。
其他回答
Enterprise Library配置编辑器可以帮助您完成此操作。它允许您创建一个基本配置文件,然后为每个环境创建增量。然后,您可以合并基本配置和增量,以创建特定于环境的web.config。看看这里的信息,它比我更能让你理解它。
您还可以将其设置为构建后步骤。除了调试和发布之外,设置一个新的配置为“部署”,然后将构建后的步骤复制到正确的web.config上。
我们对所有的项目都使用自动构建,并使用这些构建脚本更新web。配置文件指向正确的位置。但如果你做的都是从VS开始的,那就没用了。
在Visual Studio 2010及以上版本中,您现在可以将转换应用到您的web。根据构建配置进行配置。
在创建网页时。Config,您可以在解决方案资源管理器中展开该文件,您将看到两个文件:
Web.Debug.Config Web.Release.Config
它们包含可用于的转换代码
更改连接字符串 删除调试跟踪和设置 注册错误页面
看到网络上。配置MSDN上Web应用程序项目部署的转换语法以获取更多信息。
虽然官方不支持,但也可以将相同类型的转换应用到非web应用程序app.config文件。请参阅Phil Bolduc的博客,了解如何修改项目文件以向msbuild添加新任务。
这是Visual Studio Uservoice上一个长期存在的请求。
Visual Studio 2010及以上版本的扩展“SlowCheetah”可用于为任何配置文件创建转换。从Visual Studio 2017.3开始,SlowCheetah已经集成到IDE中,代码库由微软管理。这个新版本还支持JSON转换。
我也想知道。这有助于我隔离问题
<connectionStrings configSource="connectionStrings.config"/>
然后我保留一个connectionStrings。config以及“{host} connectionStrings.config”。这仍然是一个问题,但如果您对两个环境中不同的部分执行此操作,则可以部署和版本相同的web.config。
(顺便说一下,我不用VS。)
web中的<appSettings>标签。Config支持一个file属性,该属性将使用它自己的一组键/值加载外部配置。这些将覆盖你在你的网页中的任何设置。配置或添加到它们。
我们通过修改我们的网络来利用这一点。在安装时使用与站点将要安装到的环境相匹配的文件属性进行配置。我们通过安装程序上的一个开关来做到这一点。
eg;
<appSettings file=".\EnvironmentSpecificConfigurations\dev.config">
<appSettings file=".\EnvironmentSpecificConfigurations\qa.config">
<appSettings file=".\EnvironmentSpecificConfigurations\production.config">
注意:
对该属性指定的.config的更改不会触发asp.net工作进程的重新启动