使用Web.config使用Web部署参数时,请使用默认值



我试图通过限制使用多种环境的开销来改善公司中的开发和部署体验。我们目前有3个环境: debug test 版本。这意味着我有多个配置文件:web.Debug.configweb.Test.configweb.Release.config

我们正在使用Nuget软件包来部署内部开发的库。库本身负责其使用的配置值。Nuget转换文件很容易完成。因此,将软件包添加到项目中时,将正确的环境转换文件应用于正确的.config文件。使用Slowcheetah和对CSPROJ文件的一些手动修改,这很好地工作了。在开发过程中切换构建配置时,使用正确的.config文件;创建部署软件包时,它还使用正确的.config文件。

当我想使用parameters.xml文件以允许Release Manager在部署时更改配置值时,出现问题。(如何:在Web部署软件包中使用Web部署参数)他有时想设置一个单独的环境以能够测试某些事情,同时不打扰现有的测试环境。

从理论上讲,参数文件的使用是完美的解决方案。实际上,当没有值传递时,看来参数文件无法使用相应配置文件中的配置值。这意味着,当我们提供一个参数文件时,我们必须为每个可能的替换值定义实际默认值。当然,这使事物复杂化,因为它们只是所有配置的一个参数文件。在部署时始终指定每个配置值,也不是首选,因为这意味着,当配置值更改时,我们必须在两个位置上更改它:Nuget软件包和部署到默认环境的部署脚本。

>

解决我们的问题的最简单方法是什么?我们如何告诉Web部署向导在创建部署程序包时生成的.config文件的默认值,如果未填充值?

我也一直在努力解决这个问题,我可以提出的最好的解决方案是通过.pubxml文件添加参数,这意味着不幸的是(不幸的是)努力的重复(当然有人有更好的方法?)

最新更新