2012-04-20 9 views
1

Item.DownloadFile(string localFileName)またはVersionControlServer.DownloadFile(string serverPath、string localFileName)を呼び出すと、Visual StudioでデバッグしようとするたびにFileNotFoundExceptionが発生します。ファイル 'C:[プロジェクトパス] \ bin \ Debug \ [ProjectName] .vshost.exe.config'。TFS API DownloadFile()関数は、デバッグ時に例外を発生させます。

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

質問する前に、そのファイルは存在しません。私は設定ファイルを使って何もしていない、私はそれを必要としない、あるいは存在させたい。なぜ私はデバッグ時にそのファイルにアクセスしようとしているのか分かりません。 Visual Studioの外でアプリケーションを実行すると、.configファイルはまだ存在しませんが、そのファイルにアクセスしようとしていないため例外はありません。

また、vshostの問題でもありません。 「Visual Studioホスティングプロセスを有効にする」チェックボックスをオフにすると、デバッグ時以外は同じ例外が表示されますが、「[ProjectName] .vshost.exe.config」から「[ProjectName] .config」に変更されます

現在、私はこのプロジェクトをデバッグしたいときは、DownloadFile()を呼び出すたびにMessageBox.Show()関数を配置し、Visual Studioの外でアプリケーションを実行する必要があります。そのMessageBoxが表示されたら、attachを使って処理し、そのMessageBoxの後の次の行にブレークポイントを置いて、メッセージボックスでOKをクリックしてブレークポイントを取得します。しかし、ループでファイルをダウンロードしていて、ループをデバッグしたいときは、DownloadFileが呼び出された後にプロセスにアタッチするのは面倒で時間がかかるし、次のDownloadFileが呼び出される前にデバッグをやめ、DownloadFileを呼び出した後にプロセスに再度アタッチし、一日中それを繰り返し続けてください。

+0

「ワークスペース内の」何かにデバッグ・セッションの現在のパスを変更しようとすることができますか? Visual Studioは管理者として実行されますか? – Nock

+0

UACの意味はわかりますが、それは管理者として実行されます。 – Nick

+0

ユーザーアクセスコントロールは、制限された特権でプログラムを実行するためにVistaで導入された機能で、プログラムがより多くの権利を必要とするときに昇格する可能性があります。 管理者アカウントでログインしていても、UACが有効になっていると、一部の操作で制限されます。 Visual Studioを起動するには、アイコンを右クリックし、[管理者として実行]を選択してください。 – Nock

答えて

0

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

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

私が正しく覚えていれば、Workspaceオブジェクトからアイテムをダウンロードしたり、操作中のワークスペースを指定したりしてコードを修正して、それが良いかどうかを調べることができます。

また、あなたはUACがあなたのWindows上で起動しています

+1

DownloadFileはGetと同じではありません。取得するにはワークスペースをダウンロードする必要があります。 DownloadFile関数はワークスペースには無知で、ファイルをダウンロードするパスを明示的に渡します。 – Nick

関連する問題