C#

App.configの設定

kawa.xxx

ImagineCupへ挑戦していてWinCE上で動くプログラムを書いているのですがその開発の中で詰まったことをまとめておきます。
ちなみにImagineCup関連の技術エントリが続いていますが、時系列がめちゃめちゃですがそのへんは気にしないでください。

環境

  • Windows Compact 7
  • VisualStudio2008Pro
  • .NET Framework 3.5

次のような警告が出ました。いつから出ていたかは忘れた…

競合を解決して警告を消去するために、app.config でアセンブリ "System.Data, Culture=neutral, PublicKeyToken=969db8053d3322ac, Retargetable=Yes" をバージョン "2.0.0.0"  からバージョン "3.5.0.0" [C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\System.Data.dll] にマップし直してください。
競合を解決して警告を消去するために、app.config でアセンブリ "System, Culture=neutral, PublicKeyToken=969db8053d3322ac, Retargetable=Yes" をバージョン "2.0.0.0"  からバージョン "3.5.0.0" [C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\System.dll] にマップし直してください。
c:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets : warning MSB3247: 同じ依存アセンブリの異なるバージョン間での競合が見つかりました。

解決方法

プロジェクト内に App.config をテキストファイルで作って下記の内容を追加したら解決しました。

要は .net のバージョンを書き換えてるってことですかね。いったいなぜこうなったのかよくわかりません…うーん。.NET Framework2.0 で作ってたコードをコピペで 3.5 のソリューションに移したからかな?

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<assemblybinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentassembly>
<assemblyidentity culture="neutral" publickeytoken="969db8053d3322ac" name="System.Data" />
<bindingredirect newVersion="3.5.0.0" oldVersion="2.0.0.0" />
</dependentassembly>
<dependentassembly>
<assemblyidentity culture="neutral" publickeytoken="969db8053d3322ac" name="System" />
<bindingredirect newVersion="3.5.0.0" oldVersion="2.0.0.0" />
</dependentassembly>
</assemblybinding>
</runtime>
</configuration>
ABOUT ME
kawa.xxx
kawa.xxx
都内のIT系企業に勤める会社員。自分の備忘録的なアウトプット用の場所で、ボルダリングやガシェッド、セキュリティの話題が中心です。
記事URLをコピーしました