優雅地漫遊在開發與正式環境之間

  • 1368
  • 0
  • 2017-03-28

在Web.config中設定開發與正式環境的參數差異。

由於在寫前一編文章「ASP.NET 連線字串加密」的候看見有趣的connectionStrings,讓我又想再寫一編關於連線字串的文章
其實早期我也是這麼做的,實際上運作起來沒什麼太大的問題,就是切來切容易造成人為錯誤
沒加密的話,還會一次把很多機器的帳密大放送

開發人員應該要善用工具來降低人為操作錯誤進而提升效率

由於在寫前一編文章「ASP.NET 連線字串加密」的候看見有趣的connectionStrings,讓我又想再寫一編關於連線字串的文章

其實早期我也是這麼做的,實際上運作起來沒什麼太大的問題,就是切來切容易造成人為錯誤
沒加密的話,還會一次把很多機器的帳密大放送

開發人員應該要善用工具來降低人為操作錯誤進而提升效率

地表最強開發工具VisualStudio不是假的,它提供了方便的組態設定,能夠讓我們優雅地漫遊在開發與正式環境之間

如果用Debug和Release就足以應付的話,可以跳過步驟1~4

我習慣將開發環境簡單定義成三種

  1. Debug:本地環境
  2. Development:測試環境
  3. Release:正式環境

因此會需要新增一個「測試環境」組態

1.打開Configuration Manager

2.選<New...>

3.通常建立Development的時候,已經在本地開發到一定程度了,所以設定檔可以拷貝Debug的

4.右鍵點擊Web.config後選Add Config Transform

5.剛才的Development就會跑出來了

6.設定Web.組態名稱.config

以Web.Development.config為例,如果我希望發佈到測試環境的connectrionStrings DB位置能改變,就在Web.Development.config中設定

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <connectionStrings>
    <add name="DbEntities" xdt:Transform="Replace" connectionString="測試環境的DB連線字串" providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>

紅字是不可缺少的參數,Replace代表要替換的地方,如果是appSettings中的參數可以用指定屬性的方式
<appSettings>
    <add key="FooKey" value="Hello" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
</appSettings>

7.最後發行網站,打開Web.config檔就能發現不同的地方了:)