0

アプリのアップデーターがあります。更新を確認するとき、サーバーのバージョンをアプリケーションのメインの.exeファイルのローカルアセンブリバージョンと比較します。updater(updaterは別の.exeファイルです)からアプリケーションのメインの.exeファイルのアセンブリバージョンを取得すると、このファイルはブロックされます。書き換えをブロックせずにプロジェクトのアセンブリバージョンを取得するにはどうすればよいですか?アセンブリのバージョンをXMLファイルに保持することはお勧めできません。ありがとう

4

2 に答える 2

1

簡単な(そして汚い)方法は、メインexeを一時ファイルにコピーし、そこからロードすることです。

より洗練された解決策は、別のAppDomainを作成し、そこにメインexeをロードすることです。バージョンを変更したばかりなので、アプリドメイン間のブリッジを介してデータを取得するのはかなり簡単です。バージョンを取得したら、アプリドメインをアンロードできます。

バージョンを確認するためにアセンブリをロードしていると想定しています。

于 2011-10-06T15:00:54.440 に答える
1

バージョンを取得するには、AssemblyNameが必要です。

AssemblyName.GetAssemblyName(filename);
于 2011-10-06T15:18:34.380 に答える