2

ユーザーから、.NET 4をインストールした後、アプリケーションの奇妙な動作を解決できるとの報告がありました。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v2.0.50727" />
  </startup>
</configuration>

アセンブリを指定しなかった場合、より高いが互換性のあるバージョンでロードされる可能性があることを私は知りませんでした。

実行可能ファイルが実行されているフレームワークを特定することは可能ですか?実行時に?またはいくつかの外部プロセスを介して?これが事実であり、ユーザーエクスペリエンスが他の問題の結果ではないことを確認したいと思います。


Process Explorerによると、EVEMonは2.0で実行されていますが、問題は環境にあると思われます。

Process Explorer

4

3 に答える 3

5

アセンブリの実行中のコード内から、System.Environment.Version静的プロパティを使用して、アセンブリが実行されているCLRバージョンを判別できます。

アセンブリコードを変更したくない場合は、Process Explorerを使用して、実行時にプロセスにロードされたDLLを確認できます。CLRのバージョンは、mscoree.dllのバージョンから識別できます。

于 2010-08-18T18:52:02.160 に答える
1

意味がありません。CLRバージョン2.0.50727を対象としたプログラムは、.NET4.0では自動的に実行されません。明示的な.configファイルエントリが必要です。クライアントの.configファイルの腕前を考えると、これは実際に彼女が行ったことである可能性があり、問題があったことがわかりました。

于 2010-08-18T19:07:00.490 に答える
1

ニコールが言ったように、ProcessExplorerは間違いなく最も簡単な方法です。WindDBGを使用して、フルメモリダンプからこの情報を取得することもできます。

また、4.0ではCLRホスティングが並んでいることにも注意してください。4.0より前は、プロセスを所有していなかった場合、どのCLRがロードされたかを知る方法がありませんでした。これは、あなたが説明した行動を経験した理由である可能性があります。

于 2010-08-18T19:13:57.907 に答える