読者です 読者をやめる 読者になる 読者になる

かわろぐ

技術、ボルダリング、セキュリティ、その他もろもろ

MENU

App.configの設定

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>