私はC#で書かれたいくつかの簡単なコンソールアプリケーションを持っています(VS2008を使用)。
このアプリケーションでは、いくつかのライブラリの現在のバージョンを確認したいと思います。ライブラリへのパスはありますが、ライブラリを他のライブラリに置き換えると(最初のライブラリを別のディレクトリに移動します)、アプリケーションは、指定されたパスのライブラリを「見る」のではなく、最初のライブラリを「見る」ことになります。
コードは次のようになります。
private void Sth()
{
Assembly assembly = Assembly.LoadFrom(libPath);
Version ver = assembly.GetName().Version;
}
そして、私はこのメソッドを定期的に呼び出します(したがって、アセンブリはファイルを適切にロードする必要があります)。
そのため、アプリを起動し、指定されたパスのライブラリのバージョンが1.0.0.0の場合、アプリはそれを正しく表示します。しかし、ライブラリファイルを新しいもの(バージョン2.0.0.0)に置き換えても、アプリケーションは1.0.0.0を表示します。しかし、アプリケーションを閉じて再度実行すると、2.0.0.0が正しく表示されます。
なぜそれが起こっているのですか?
ピート、よろしくお願いします。