コードプロファイラ(この場合はDrone Profiler)が.NETアプリケーションを実行する方法と、それを直接実行するのとは異なる方法を理解しようとしています。私がこれを知る必要があるのは、私が開発者のコンピュータの.NETインストールに非常に奇妙な問題や破損があるためです。なぜなら、プロファイラの外に現れますが、非常に奇妙なことです。コードプロファイラ内の実行中のC#アプリケーションは、コードプロファイラ外での実行とどのように違いますか?
この問題は、System.Net.NetworkInformationのメソッドへの呼び出しにのみ影響するようです(.NET 3.5から2.0では、4に対して何かを構築すればすべてがうまくいきます)。私は1つだけを行う小さなテストアプリケーションを構築し、System.Net.NetworkInformation.IsNetworkAvailable()を呼び出します。プロファイラーの外では、System.dllで「致命的な実行エンジンエラー」が発生し、それがすべての情報です。私が理解しているところでは、通常、System.dllがネイティブDLLにIsNetworkAvailable()ロジックを実行させるときに発生するネイティブメソッド呼び出しのエラーが原因です。
私のハードドライブは、いくつかの破損を被ったとcheckdiskは不良クラスタを見つけ始めるまで細かい仕事をしていた私のWindows 7は.NETのインストール(2.0から3.5)に含まれる背景
間違いなく不要。私はドライブを新しいものにイメージし、.NETのこの1つの問題以外はすべて正常に動作します。
この問題を解決するには、Windowsを再インストールするか、イメージバックアップに戻す必要があります。私が最も関連性の高いように見えたファイル/ディレクトリ(Windowsおよびプログラムファイルの下で、.NETのものに)前と後のディスクを差分を取っている
- :ここ
は私がに見てきた事柄のいくつかであります私が何も期待していない場所では何の変更も見られませんでした(明白なファイル破損はありません)。
- 私はソフトウェアとシステムレジストリハイブをディスクの前後の問題と比較し、関連性のある変更は見られませんでした。
- 私は新しいユーザーアカウントを作成し、環境が関連している場合はすべての環境変数をクリーンアップしました。変化なし。
- "sfc/scannow"を実行したところ、完全性の問題は見つかりませんでした。
- 破損して何も変更されていないものが見つからなかった場合に備えて、事前にコンパイルされたコードを再生成するために "ngen update"を試しました。
- 私はウイルススキャナーを削除して、干渉していないかどうかを確認しました。違いはありません。
- セーフモードでテストコードを実行しようとしましたが、同じクラッシュ問題です。
.NETインストールを修復する必要があると仮定しますが、Windows 7には.NET 3.5 - 2.0が含まれているため、.NETインストーラを再実行してやり直すことはできません。自分でWindowsを再インストールしようとすると、Windowsディスクにアクセスできません(コンピュータにはリカバリパーティションがありますが、使用できません)。また、ドライブはディスク全体の暗号化ソリューションを使用しているため、再インストールが困難です。
私はここから最初からやり直して、新しいWindowsをインストールしたくないソフトウェアパッケージを数多く再インストールし、数十の開発関連のカスタマイズを覚えておきたいと思います。
すべてのことを考えると、誰も助けてくれるアドバイスはありますか? .NET 3.5 - 2.0が必要です。私は開発者であり、ビルドしてテストする必要があります。
ありがとうございます!
Quinxy
本当にありがとうと思います。それは非常に興味深い仮説です。私は、この問題を明らかにするデモプログラムが文字通りPing()関数を呼び出す1行(既定のWindowsフォームプロジェクトフォーム)であり、私が持っていたディスクの問題。 しかし、私が働いている国と仕事していない国のレジストリを比較したとき、私はパフォーマンスモニタに関連したいくつかの変更が気づいたので、あなたが計測について言及した部分は非常に重要かもしれません。 –
私はパフォーマンスカウンタに関連するレジストリの変更をさらに見直して、それらの変更が何かを行うかどうかを確認する必要があると思います。 –