2016-06-27 12 views
1

私はVBでいくつかのC#コンポーネントを使って解決策を書いています。このソリューションでは、2つの外部ソースからのライブラリを使用しています。私は何ヶ月も問題なくこのプロジェクトに取り組んできました。私は自分のシステムや構成を変更するために何か具体的なものを特定することはできません。私はちょうどコードを作業していました。古いライブラリ呼び出しから新しいライブラリ呼び出しに移行しました。新しいライブラリ呼び出しでは完全な書き換えが必要なので、コードのセクションを変更してその点までテストします。金曜日の朝のVisual Studio 2013デバッガは、このソリューションでローカル変数を認識または表示しなくなります。ローカルウィンドウに表示されるのは、私の下にあるものだけです。コードは機能し、特定のポイントで変数の値を確認するためにテキストログファイルに書き出すが、デバッガは消えてしまった。これらのローカル変数のいずれかをWatchに追加すると、「宣言されていません。保護レベルのためにアクセスできない可能性があります。ビジュアルスタジオ2013ローカル変数がデバッガに表示されない

  • がオンラインを見て、私は
  • がビンとOBJのフォルダーを削除していない成功したいくつかのマッチを試してみましたが、解決策は何もして再構築していなかった:

    手順ノー永久的な成功を収めてこれまでに撮影しました 成功

  • 私は は、プロジェクトを再構築しなかったし、問題が再び
  • 登場最初からソリューション、ベースファイルの上にコピーされ、 液と(数時間のために働いた)プロジェクトを再構築し、再作成されるまで、
  • がパック5に更新され、成功しません。

古いプロジェクトを開いて確認しました。デバッガはうまく動作し、変数を表示します。明らかに、再構築プロセス中に起こることです。

ご協力いただければ幸いです。

おかげ

更新: 私はもう少し明確に状況を説明してみましょう。

私は構築し、一部の顧客に販売しているアプリケーションがあります。バージョン1は、いくつかの場所にインストールされ、実行されています。これはVBで記述され、特定の統合プロセスにいくつかの古いCOMライブラリを使用します。

ベンダーはCOMライブラリを廃止しています。彼らの新しいライブラリはC#にあります。

私はアプリケーション全体(ソリューション)の新しいコピーを作成し、新しいC#ライブラリをインポートしました。私は、古いコードを新しい呼び出しのコードに置き換えています。私はこのソリューションを再コンパイルし、すべてがデバッグで正常に動作しました。

新しい呼び出しで使用されるオブジェクトはまったく異なり、ドキュメントが限られているため、コードのセクションを更新してその点までテストします。 「すべてのファイルを保存」するたびに、プロジェクトを再ビルドして変更をテストします。すべてがうまくいきました。金曜日の朝、私はより多くの変更に取り組み始め、奇妙なエラーが発生しました。システムは特定の変数に対して適切な値を得ていませんでした。私がWATCHウィンドウで確認すると、デバッガはそれを評価できないと言った。私は何かがハングアップしたと考えていたので、すべてをシャットダウンしてマシンを再起動しました。後でもう一度試してみると、同じ問題です。

数時間後、私はVSを終了し、フォルダを "OLD"に変更し、古いバージョンから解決策を作り直しました。すぐにすべてがうまく見えていた。私は変更とテストを始めました。私がリビルドを行うたびに、最後の変更まですべてがうまく見えました。ここで私は再びです。

コードは、更新した時点まで正常に動作します。唯一の問題は、デバッガウィンドウが正しく動作していないことです。変数がSubの外にあるクラスレベルで宣言されている場合は、それらを見ることができます。デバッガが目に見えない唯一の変数は、実行中のSub内のローカル変数です。

私はこの問題で誰かを探して、いくつかのアイテムしか見つけませんでした。私は提案を試みたが、喜びはなかった。私は一時的にサブ変数の外に変数を定義する必要があるので、デバッグ中にそれらを見ることができます。

私はVS 2013の更新日午前5

私はこれを回避するためにVS 2015に移動する必要がありますか?

時間と援助のおかげでもう一度おねがいします。

答えて

0

あなたが最後に再構築したときからVisual Studioのバージョンを変更していないことを前提としています。

recreated solution from scratch, copied over base files and rebuilt solution and project (which worked for a few hours), until I did a rebuild project and problem appeared again 

これに基づいて、最初から作成して、すべてを正しく再構築するまで機能しますか?しかし、ベースファイルをまだコピーしていて、ビルドし直してもローカルライブラリのウィンドウが壊れていないので、新しいライブラリ呼び出しがあります。そのうちの1つはほぼ確実に犯人です。

ライブラリーコールは、あなたの投稿の開始に基づいて変更されたものであるように思われるので、古いコードに戻って再構築しても問題は解決しますか?これを想定して、ライブラリー呼び出しを中断するまで一度に1つ戻します。

古いコードに戻ってもそれを修正できない場合は、古いコードで最初から作成し、ベースファイルをコピーして再構築してください。これで問題が解決された場合は、一度に1つずつ新しいライブラリ呼び出しを追加し、ブレークするまで各ライブラリ呼び出しを再構築します。

それでも問題が解決しない場合は、変更された可能性のあるものをさらに詳しく調べる必要があります。

ベースファイルの代わりにプレースホルダを使用できますか、または完成品としては必ずしも機能しませんが、デバッグできるようにすることはできますか? 、再構築し、再度デバッグして問題がそれらのいずれかに関連しているかどうかを確認します。ベースファイルの日付をチェックして、リビルドが最後に実行されてから変更されていないことを確認します。

同時に行うことができることは、同僚が自分のマシンでリビルドを行い、同じ問題が発生しているかどうかを確認することです。それはあなたに設定/プログラム破損の問題である可能性を(ほぼ)完全に排除します。代わりに、ファイルやコードをアップロードできる無料のvb.netコンパイラがオンラインにあります。私はそれが(あなたのプログラムのコンポーネントやデータの感度のせいで)あなたにとって実用的かどうか分からないし、そこにC#コードがある場所を試したこともないが、私は考えないだろうそれは問題になるだろう。

関連する問題