C#アプリケーションがあり、変更を加えたときにエラーメッセージが表示されます。
タイプ 'System.TypeLoadException'の未処理の例外がWindowsFormsApplication1.exeで発生しました
追加情報:タイプを読み込めませんでした
アセンブリ「TIProData、Version = 1.0.0.0、Culture = neutral、PublicKeyToken = null」の「TradeIdeas.TIProData.OddsMakerColumnConfiguration」。
このメッセージは、dll(TIProData)のバージョン番号が1.0.0.0であることを示しています。利用可能な新しいバージョンがあると思います。マシン上のdllのバージョン番号を確認するにはどうすればよいですか?
Reflector 、 [〜#〜] ildasm [〜#〜] または ILSpy を使用して、アセンブリバージョンを取得できます。
通常、ILDASMはC:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\ildasm.exe
(ここでv8.1A
は、インストールされているWindows SDKのバージョンです。
ILDASM:
リフレクター:
いくつかの方法があります:
Visual Studioでdllを参照する場合(ProjectName/Referencesフォルダー内)、DLLを右クリックして[プロパティ]を選択すると、[バージョン]と[ランタイムバージョン]が表示されます。
エクスプローラーでdllファイルを右クリックしてプロパティを選択すると、「ファイルバージョン」と「製品バージョン」があります。
または、コードで調査します。
Assembly assembly = Assembly.LoadFrom("TestAssembly.dll");
Version ver = Assembly.GetName().Version;
小さなutilアプリからAssemblyName.GetAssemblyName(string path)
を使用できます。
[〜#〜] msdn [〜#〜] の詳細。
アセンブリに属するクラスを知っている場合は、GetTypeInfoを使用できます
var runtimeVersion = typeof(MyClass)
.GetTypeInfo()
.Assembly
.GetCustomAttribute<AssemblyFileVersionAttribute>();
文字列ver = RuntimeVersion.Version;