將WPF應用程序轉化爲類庫

  最近,根據產品的架構及公司內部開發的分組。

 
  一個產品的不同模塊被拆分到不同的小組去開發。每個模塊都是獨立的WPF應用程序,最後合併在總的項目。
 
  這樣,也就導致了下面一些問題:
  1. 效率--調用進程顯然會增加響應的時間。
 
  2. 性能--每個獨立進程,都需要佔用一定的內存。我試過一個空的WPF啓動來就要佔用20-30M內存。這樣,隨着模塊的逐步增加,勢必成爲瓶頸。
   
  3. 調試—進程間無法捕獲異常,進程如果出錯了,就只能指望程序員得日誌了。只能期盼着他多寫日誌。
     (多寫點日誌會死啊?連錯誤日誌都不寫的真該拉出去槍斃。應該把那些不寫日誌的扔到生產環境,然後在客戶眼皮底下,程序崩潰,讓他找不到原因崩潰去吧,流汗去吧、緊張去吧、哭去吧、找地縫鑽去吧。。。。哈哈哈。)
      
  4. 部署--編譯好主程序,還要將各個子模塊編譯好的程序分別放入相應的目錄。
 
  於是,就考慮着把子模塊作爲類庫引進項目,在一個進程內切換對象。但是,WPF是無法直接編譯成DLL的。
 
  導致下面的錯誤:
  Library project file cannot specify ApplicationDefinition element

 

 

解決方案一:
從項目移除或刪除WPF Application自動生成的Window1和App
設置Project > Properties > Application > Output Type = Class
 
解決方案二:
修改App的Build Action屬性,默認是ApplicationDefinition
App > Properties > Build Action = None
設置Project > Properties > Application > Output Type = Class
 
在需要變回WPF Application時,反之則可。附件帶上小DEMO。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章