別プロジェクトからもDLLを編集する方法
昨日続きで
別プロジェクトからもDLLを編集する方法をメモ
ソリューションエクスプローラーでの操作
参照一覧から参照しているDLLを削除
ソリューションにDLLのプロジェクトを追加
参照にソリューション(プロジェクト)内のDLLを追加
昨日の状態、ここから
元のDLLの編集、作成と動作の確認用のソリューション(プロジェクト)の状態
20180218_dll_testって名前のソリューションの中に2つのプロジェクトがある
ClassLibrary1って名前のプロジェクト
これがDLL本体、この中にあるClass1.csってファイルに色々書いていく
20180218_dll_testっていうソリューションと同じ名前のプロジェクト
これがDLLの動作の確認用、これの参照にClassLibrary1を追加することで連携して動作の確認をすることができている
できあがったdllファイルを使用するソリューション(プロジェクト)の状態
ここまでが昨日の状態
今回は、このdllファイルを使用しているプロジェクト「20180218_作ったdllを使う」からもdllファイルを編集するには
一旦、参照からDLLを削除
ソリューションに元のDLLのプロジェクトを追加する
メニューから追加→既存のプロジェクトをクリック
元のDLLのプロジェクトファイルを選択して開く
元のDLLのプロジェクトがソリューションに追加されたところ
参照に追加
これで完了、こっちからもDLLの編集ができるようになった
DLLの編集してみる
渡された数値に1000を足して返す関数を追加したところ
MainWindowの方で確認してみる
追加した関数が入力候補に出ている
いいね
別プロジェクトからの編集は無視されているのか
それとも同じように編集されているのか
元のプロジェクト(ソリューション)を開いて確認
スゴイ
これは便利だけど反面もあるねえ
関数の名前を書き換えたらどうなるのか
作ったdllを使うのプロジェクトからAdd1000をAdd2000に変更してみる
作ったdllを使うのプロジェクト内のMainWindowの方は自動で書き換えられていた
元のDLLプロジェクト
元のdllも書き換えられていた、ここまでは予想できるけど
元のdllがあるMainWindowで使っている方は書き換え前の名前のままなのでエラーになっていた
考えてみれば当然なのかな
エラーのところにカーソルを当てると
エラーの説明とともに修正内容を表示するってのもある
修正候補1
これは違うねえ
修正候補2
スゴイ、どうやって判定しているのか、まさにその通りの修正案が出てきた
でもこれに頼って関数の名前を変更するのは良くないよねえ
関数に限らずかな
他にも削除するのもよくなさそう
追加するのはいいけど一旦追加したら削除が難しいから安易に追加もよくなさそう
関数の内容を変更するのも、明らかに計算が間違っているとかじゃない限りはしないほうが良さそう
こうしてみるとdllの編集はあちこちでできるようにしないほうが良さそうね
なんかこの記事を否定しているようになってきたw
昨日の
dllファイル(クラスライブラリ.NET framework)の作り方と使うまでの手順メモ
https://blogs.yahoo.co.jp/gogowaten/15377219.html