InputMan for ASP.NETのバージョン移行

ASP.NET改修のお仕事でInputManを使う必要があり、同一バージョンの製品を購入し、さっそくVisualStudioで動作確認と思いきや、何故か例外が発生してしまう。

'WebDev.WebServer40.EXE' (マネージ (v4.0.30319)): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\GrapeCity.Web.Input.v70\v4.0_7.0.2016.219__c3bd7c1dccef5128\GrapeCity.Web.Input.v70.dll' が読み込まれました
Application Error: System.Web.HttpParseException: 基本クラスに 'EditID' という名前のフィールドが含まれていますが、その型 (GrapeCity.Web.Input.IMEdit.GcTextBox) はコントロール (GrapeCity.Web.Input.IMEdit.GcTextBox) の型と互換性がありません。
場所 System.Web.Compilation.AssemblyBuilder.AddBuildProvider(BuildProvider buildProvider)
場所 System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders()

どうやらDLLのバージョンとプログラムが認識しているバージョンが違うらしい。
インストールも正常にいってるし、プロジェクトにも最新のファイルが取り込まれているのに何故だ。

少々嵌っていると、なんとaspの宣言でバージョンが指定されているのを発見。

<%@ Register assembly="GrapeCity.Web.Input.v70, Version=7.0.2014.0122, ... %>

しかもビルドバージョン以降が違う。
購入version⇒7.0.2016.0219

これが原因なのか・・・。
該当箇所は多数だ。
相当な修正量である。

途方に暮れながらGrapeCityのサイトを眺めていると、バージョン移行ツールが付属しているとの事。

確かにあった。
inputman_tool

実行してみる。
inputman_ikou

7.0.2014.0122から7.0.2016.0219への変換と認識されている。
これを変換が必要なファイルに対して行う。
当方はcsprojに対して行ったが、他にconfig関係のファイルも指定できるようだ。

これで全て上手くいった。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です