###前提・実現したいこと
C#でPrism for Xamarin.Forms向けの外部ライブラリを自作しています。
この時、できるなら以下の二つのバージョンに一つのバイナリで対応したいです。
- Stable版の6.2.0
- Preview版の6.3.0-pre1
この為、ライブラリはPrism 6.2.0を利用してビルドし、6.2.0と6.3.0-pre1の双方を利用するアプリから利用できるようにしたいと考えています。
しかし試してみると以下のエラーが発生します。
ところが、6.1.0を利用してビルドしたライブラリは、6.2.0を利用してビルドした利用者側からは問題なく利用できました。
利用者側:6.2.0 ライブラリ側:6.1.0 OK
利用者側:6.3.0-pre1 ライブラリ側:6.2.0 NG
な理由と、あるのであれば対策を教えていただけないでしょうか?
よろしくお願いいたします。
■2016.12.06 15:40追記
PrismのDLLのPublicKeyTokenが違うからのような気がしてきました。
6.1.0と6.2.0はPublicKeyTokenが91a96d2a154366d8ですが
6.3.0-pre1だとPublicKeyTokenが40ee6c3a2184dc59になっています。
つまり以下の認識であっているでしょうか?
- 6.3.0の今後のバージョンでPublicKeyTokenが6.2.0と同じ値に変更されたらビルドが通るようになる
- PublicKeyTokenが今後もこのままであれば、ライブラリもバージョン別にビルドする必要がある
2016.12.06 15:40追記終了
###発生している問題・エラーメッセージ
'BindableBase' は、参照されていないアセンブリに定義されています。アセンブリ 'Prism, Version=6.2.0.0, Culture=neutral, PublicKeyToken=91a96d2a154366d8' に参照を追加する必要があります。
###該当のソースコード
ライブラリ側
cs
1public class DependTo62Class 2{ 3 public void Execute(BindableBase bindableBase) 4 { 5 } 6}
利用側
cs
1public class DependTo63Class : BindableBase 2{ 3 public void Execute() 4 { 5 var target = new DependTo62Class(); 6 target.Execute(this); 7 } 8}
一応Githubにも上げたのでリンクを張っておきます。
https://github.com/nuitsjp/DependencyTest
###試したこと
6.1.0を利用してビルドしたライブラリは、6.2.0を利用してビルドした利用者側からは問題なく利用できました。
またBindableBase自体は、6.2.0~6.3.0-pre1の間では変更は入っていません。
ライブラリの参照プロパティを変更してもダメでした。
###補足情報(言語/FW/ツール等のバージョンなど)
OS:Windows 10 AU
IDE:Visual Studio 2015 Update 3
Prism:6.1.0、6.2.0、6.3.0-pre1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/06 15:36