2

Item.DownloadFile(string localFileName) または VersionControlServer.DownloadFile(string serverPath, string localFileName) を呼び出すたびに、Visual Studio でデバッグしようとすると FileNotFoundException が発生します: ファイル 'C:[Project Path]\bin\Debug\ が見つかりませんでした[プロジェクト名].vshost.exe.config'.

アプリケーションをビルドして Visual Studio の外で実行すると、これらの関数を呼び出すのに問題はありません。それは完全にうまく機能します。誰がそれを引き起こしているのか知っていますか?

質問する前に、いいえ、そのファイルは存在しません。私は構成ファイルで何もしていません。存在する必要も、存在したくもありません。デバッグ時にそのファイルにアクセスしようとしている理由がわかりません。Visual Studio の外でアプリケーションを実行すると、その .config ファイルはまだ存在しませんが、そのファイルにアクセスしようとしていないため、例外は発生しません。

また、vshost の問題でもありません。「Visual Studio ホスティング プロセスを有効にする」のチェックを外すと、デバッグ時以外は同じ例外が発生しますが、ファイル名は「[ProjectName].vshost.exe.config」から「[ProjectName].config」に変わります。

現在、このプロジェクトをデバッグする場合、DownloadFile() を呼び出すたびに MessageBox.Show() 関数を配置し、ビジュアル スタジオの外でアプリケーションを実行する必要があります。その MessageBox が表示されたら、アタッチを使用して処理し、その MessageBox の次の行にブレーク ポイントを配置し、メッセージ ボックスで [OK] をクリックすると、ブレーク ポイントがキャッチされます。しかし、ループでファイルをダウンロードしていて、ループをデバッグしたい場合、DownloadFile が呼び出された後にプロセスにアタッチし、次の DownloadFile が呼び出される前にデバッグを停止し、DownloadFile が呼び出された後に再度プロセスにアタッチするのは非常に面倒で時間がかかります。それを一日中繰り返します。

4

1 に答える 1

0

完全にはわかりませんが、現在のパスとファイルをダウンロードするワークスペースに関係があるようです。

ワークスペースを明示的に指定しない場合、TFS API は、そのパスがワークスペースでマッピングとして宣言されているかどうかを調べて、アプリケーションの現在のパスからワークスペースを決定しようとします。

私の記憶が正しければ、ワークスペース オブジェクトから項目をダウンロード (または操作でワークスペースを指定) し、それを行うようにコードを変更してみて、改善されるかどうかを確認してください。

デバッグ セッションの現在のパスを「ワークスペース内」に変更することもできます。

于 2012-04-20T15:15:58.040 に答える