对于web.config来说,我们不会陌生,主要对站点进行相关参数的配置,当它被修改后,IIS里对应的应用程序池会被重启,而对于config里的一些配置我们一般使用比较多的是数据连接串connectionString,配置串appSettings,友好提示控制customErrors等,而今天我们要说的是配置文件config里的两种模式Debug和Release.
一般地,我们一个网站至少会对应有测试环境和生产环境两种,有的可能更多,而如果有两种的话我们的配置文件可以根据debug和release模式来做发布的区别,发测试时用debug模块,发生产环境用release模块,这种个模式对应的各种配置可能也是不一样的,看一下文件结构
web.config源文件
<connectionStrings>
<add name="MyDbContext" connectionString="Data Source=localhost;port=3306;Initial Catalog=erp;user id=root;password=root;Charset=utf8" providerName="MySql.Data.MySqlClient" />
</connectionStrings>
测试环境web.debug.config
<connectionStrings>
<add name="MyDbContext"
connectionString="Data Source=外测;Initial Catalog=MyReleaseDB;Integrated Security=True"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
生产环境web.release.config
<connectionStrings>
<add name="MyDbContext"
connectionString="Data Source=外正;Initial Catalog=MyReleaseDB;Integrated Security=True"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
进行发布之后,我们看一下合并后的web.config(我们采用release模块进行发布)
发布命令
dotnet frameworks
msbuild /t:ResolveReferences;Compile
/t:_CopyWebApplication
/p:Configuration=Release
/p:WebProjectOutputDir=C:\Jenkins_Publish
/p:OutputPath=C:\Jenkins_Publish\bin
dotnet core
dotnet publish "%WORKSPACE%\src\LindAgileCore.Api" -o C:\Jenkins_Publish
发布release版本后的结果
<connectionStrings>
<add name="MyDbContext" connectionString="Data Source=外正;Initial Catalog=MyReleaseDB;Integrated Security=True" providerName="MySql.Data.MySqlClient" />
</connectionStrings>
我们可以看到web.release.config文件的节点把之前的config对应的节点了,发布成功!