表題どおり
忘れないようにメモしておこう・・・
なぜか、dllが動かない・・・
なんでだろうと調べたていたら、ものすごく単純な理由だったわけさ。
.NET frameworkバージョン違いで不具合が起きる
簡単な話。
.NET3.5で作ったdllを
.NET4.0で動かそうとするとエラーが出る。
詳しくはこちらで解説していた。
http://d.hatena.ne.jp/tt_clown/20100923/1285234733
http://nky-tech-sdt.blogspot.jp/2010/02/net-framework-40.html
参考にさせていただきました。
ありがとございます。
そのまま解説をパクると、こういう事だ。
app.configにレガシー設定をする。
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
</configuration>
要するに
useLegacyV2RuntimeActivationPolicy=”true”
を入れておけと
何だよ・・・
そんなことなら、VisualStudio側で設定できるようにしておけっての・・。
ほかにexeの場合は、ビルド時に生成される
<アプリ名>.exe.configをexeと同じディレクトリに入れておけと。
なるほどねぇ~~。
まぁ確かにランタイムやフレームワークは
バージョンによる差異があるわけだから。
よくよく考えたら当然だわな・・・。
と思いつつ。
上位バージョンは、可能な限り下位互換を持たせろよな・・・
と思う次第。
また一つ勉強になった。
以上今日のトピックでした。
それにしてもC#って楽だよなー。