わかりました、私は本当にランダムなバグを経験しています、そして私はこれが起こる理由を見つけることができません。何年も前に最初に開発された、更新するアプリケーションがあります。私は、このアプリケーションの管理を唯一の責任とするかなりの規模の開発チームで働いており、このプロジェクトはちょっとした「フランケンコード」プロジェクトであると認めるようになりました。私たちは、このプロジェクトを継承した何世代にもわたる開発者の列の中で、謙虚な開発者にすぎません。(これは後で知ることが重要になります。)
初期化プロセスの奥深くで次のコードを呼び出すアプリケーションの部分があります。
string strPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase);
string strFile = strPath.Substring(6) + "\\" + FILE_NAME;
これが取引です。私の仲間のチームメンバーと私は、ソリューションの高レベルのUIおよびDB関連セクションを永遠に変更および構築することができました。私も他の誰も、上記のコード、または同じコードファイル内のコード(またはソリューション内のプロジェクト)を変更しました。
しかし、今日、アプリケーションのまったく別のセクションで作業しているときに、非常に奇妙な「メモリ不足」例外エラーが発生し始めました。それが私の問題に関連しているかどうかはわかりませんが、マシンを再起動してVSソリューションをリロードした後、デバッガーテストを実行しようとすると、初期化時に次の例外が一貫して発生することを言及する価値があると感じましたプロセスは、上記のコードスニペットを実行しようとします。
例外:mscorlib.dllでタイプ「System.ArgumentException」の初回例外が発生しましたメッセージ:URI形式はサポートされていません。
私はこのエラーメッセージをグーグルで検索しましたが、元の開発者が単にこれを間違って行っていたようです。これはよくあるエラーのようですが、私を困惑させるのは、これが今日までランダムに問題になることはなかったということです。
これは奇妙な質問ですが、このコードを変更せずにこれを修正する方法はありますか。私が言ったように、これは本当に複雑なアプリケーションであり、しばしば少し一緒に石畳になっているように感じます。私たちのチームは、アプリケーションの機能の多くをクリーンアップまたは置換しようとしていますが、実稼働環境にデプロイされた後のアプリケーションの動作についての確固たる手がかりがないため、触れていない部分もあります。これは非常に重要なアプリケーションであり、壊すことはできません。
これが「魔法のように」起こり始める原因となる可能性のある手がかりを誰かが持っているでしょうか?特に私はUI関連のコードで作業していたので、これが由来するコードの低レベルの構成解決セクションにはほど遠いです。
どんな助けでも大歓迎です。小説でごめんなさい。私は困惑しているだけで、このプロセスを変更するとユーザー環境によって動作が異なる可能性がある場合は、このパス文字列を取得するために別の方法を使用したくありません。
プロジェクト/ソリューションに関連付けられているVisualStudio内の一部の作業ファイルが破損していると推測できます。プロジェクトファイルのテキストとすべてのコードを検索しましたが、場所に問題はありませんでした。
前述したように、ソース管理を使用します。修正を試みるために、現在のタスクで最初にプルしたのと同じソースリビジョンをプルダウンしました。アプリケーションをコンパイルして実行しました。すべてが「バニラ」状態で適切に機能しました。
次に、変更したことがわかっているすべてのファイルをコピーしました。新しいプロジェクト参照やリソースを追加していなかったので、変更した.cs
ファイルをコピーしました。アプリケーションをビルドして実行しましたが、ブランチからプルしてから問題はありませんでした。
これはなぜこれが起こったのかという質問には答えませんが、この方法は問題の解決策を提供することができます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加