VS+C#:1プロジェクト内で同一ライブラリの複数バージョン利用する
なぜか最近C#と付き合うことになった僕です。
WindowsもVisualStudioも馴染みがない僕です。
これまで主にvimを使っていたんですが、VisualStudio(使い慣れたらたぶん)便利ですね!さすがIDEって感じ。
で、参照の追加でMvvmLightToolKitを入れたんですが、もし複数バージョンを同時に使いたくなったらどうするんだろ?と興味本位で調べてみました
複数バージョンのアセンブリをプロジェクトの参照に追加する
仮にMvvmLightToolKit 5.2と5.3を入れたいとすると、以下の感じでできました。
- 5.3はNuGetで普通にインストール
- 5.2はアセンブリをDLしてインストール
- こちらからDLしてMVVM Light Toolkit - Home
- vsixをunzipして、さらに中身のpackageファイルもunzipするとdllが出てくる
- 出てきたdllをGalaSoft.MvvmLight52.dllにrenameしておく
- dllのファイル名が5.3と同一になっているため、参照の追加でエラーになったため
- dllをVSの参照の追加から追加する
ソースコード内で両バージョンのアセンブリを利用する
以下のような感じでaliasを張ってやることで解決しました
- 例えば、5.2系の方のアセンブリにMvvmLight52という名前をつけます。
- 利用するコードは以下のような感じでいけました。
extern alias MvvmLight52; using GalaSoft.MvvmLight; namespace MyAPP { // 5.2のViewModelBaseを利用 class MyClass : MvvmLight52.GalaSoft.MvvmLight.ViewModelBase { } // 5.3のViewModelBaseを利用 class MyClass2 : ViewModelBase { } }