2012/01/13(金)続・SofTailNet

ただの作業メモ:
昨日
  • 存在しないファイルを読む設定にした場合に、[STOP]を押しても実は止まってない場合がある問題を修正
  • 型定義だけ入ったモジュールをDLLに追い出した
今日
  • メインの機能とGUIのガワをDLLに分割した
    • プロジェクトに分けてDLLを作成して、最終生成物は ILMerge で結合
    • フリーソフト程度のものは exe 単体で済んだほうがいいじゃん?
    • app.config に保存するデータ型を自前で定義する場合に、自プロジェクトで定義した型は使えない、というVSの仕様上のバグとしか思えない点も解決できてよかった
      • この一点だけでも ILMerge は有用なのでは?
ILMerge.exe の呼び出しは、ビルドイベントに入れておく。マクロが必要十分なだけ揃ってるのでこんな風に書けた。※一行です

"C:\Program Files (x86)\Microsoft\ILMerge\ILMerge.exe" $(TargetPath) $(SolutionDir)SofTailCore\$(OutDir)SofTailCore.dll $(SolutionDir)\SofTailTypes\$(OutDir)SofTailNet.Types.dll /out:SofTail.exe /log:ILMerge.log

いろんなツールでマクロが多すぎて使いづらかったり、逆に少なくて要求を満たさなかったりする事が多いので、少ないマクロで必要十分揃ってるっていうのは素晴らしいと思った。クリーンの時の動作も定義できるといいな。


機能の分割にこんなに時間を食うとは思わなかったけど、ついでにコードの整理もできたのでヨシとする。

追記:
  • TODO: 文字コードの指定でユーザー指定のものをリストに追加する際には、重複チェックを行う
  • WISH: ユーザー指定の文字コードは履歴を残す
    • セーブのタイミングを変えないと、最後に指定した物以外は残らない
    • めんどいから設定用のオブジェクトから内部オブジェクトに変数をコピーするのやめようか