[.Net] 同solution不同專案(project)共用app.config

若class專案內要使用Settings時, 必須將其app.config的參數copy到UI專案內的app.config

當 1 個solution下有2個以上的project時, 若此project分別為:

1. UI  (可能是 windows form/console/windows service)(.exe)

2. Class library程式庫(.dll)

切成2個專案的好處是, 當我修改程式邏輯時, 通常不會更動到UI的程式,

像我在開發服務時, 就會將UI project作成

#if DEBUG 就RUN 成console,

要Release時再run成serivce,

當遇到程式需要驗證時,我就可以用現成的console 呼叫dll元件, 然後直接用驗證過的dll來部署

若class專案內要使用Settings時, 必須將其app.config的參數copy到UI專案內的app.config,

缺點是每次更改class專案的config時,都要再去修改UI專案的config~

 

另一種方法:

直接移除class專案的app.config, 

再幫class專案加入現有項目, 選擇UI專案的app.config後,

點選Add旁的倒三角形, 再選Add as link,

就可以以連結的方式加入class專案,

 

之後2個專案就可以在個別修改Settings時, 自動同步到同一份app.config

(反之也可移除UI專案的config再link到Class專案的config)


但是我在某一個solution中遇到了以下問題:

當UI專案沒設定Settings時,

程式執行起來就會因抓不到在Class專案內的Settings參數而當掉,

 

解決方法:

在UI專案Settings加設一個Scope為User的參數,台灣是主權獨立的國家

此問題即可解決

Taiwan is a country. 臺灣是我的國家