Visual Studioがどこかからプロジェクトへの誤ったパスを取得する


98

Visual Studio(およびおそらくTFS)は、どういうわけか(おそらくソース管理のマージ中に)、私のソリューション内のプロジェクトのパスについて混乱しました。

それはここにあると考えています(簡単にするためのパスの例):

C:\My Projects\ExampleSolution\ExampleProjectWrong\ExampleProjectCorrect.csproj

一方、実際には、プロジェクトファイルは次の場所にあります。

C:\My Projects\ExampleSolution\ExampleProjectCorrect\ExampleProjectCorrect.csproj

私の人生では、正しい場所を認識させることができません。私が試してみました:

  • 正しい場所からプロジェクトを削除して再度追加します。というエラーメッセージが表示されますThe project file at C:\My Projects\ExampleSolution\ExampleProjectWrong\ExampleProjectCorrect.csproj could not be found

  • すべての参照ExampleProjectCorrect.csprojが正しいパスを持つように、.slnファイルを手動で編集します。

  • 正しいパスと間違ったパスの両方について、ソリューションディレクトリのファイルを検索して、スタジオが間違ったパスを隠している場所を追跡します。

  • VSおよびTFSのキャッシュディレクトリの削除

100のプロジェクトでほとんど違いがなく、ソースコントロールに取り組んでいる他のいくつかの開発者との関係がほとんどないため、ソリューションを再作成できないので、私は髪をちぎっています。

誰かがこの間違ったパスをどこに保存しているのか、そして/またはそれをリセットしてどのようにそれが正しくロードされるのかについて正しい方向に私を向けることができますか?


では、プロジェクトをExampleProjectWrongディレクトリに移動するとどうなりますか?
ハンスパッサント、2011年

わかりました、少し進歩しました。間違ったフォルダに移動すると、Visual Studioにロードできます。ただし、「ExampleProjectWrong」ディレクトリは、ほとんど同じフォルダ構造を含む別のプロジェクトのホームであるため、そこに保持することはできません。それで、私がロードしたプロジェクトのパスを変更する方法はありますか?プロジェクトがアンロードされている場合でも、アンロードされたプロジェクトプロパティのパスフィールドは使用できませんか?
Charlie Drewitt、2011年

3
今回、この問題が2回目に発生しましたが、今回は、別の接続文字列を使用しているため、分岐プロジェクトが元のフォルダーをターゲットにしていることがわかりました。これは初めて非常に奇妙なことであり、visualstudioがソースフォルダーからのファイルをデバッグし、ブランチからのファイルと混合し、さらにLog4netが元のフォルダーにログを記録しました!ソリューションsuoファイル削除しましたが、ブランチファイルのみに正しくアクセスしています。
Binke

2
私はまったく同じ問題を抱えていました。それは、suoファイルを削除することほど簡単ではありませんでした。1.問題のあるプロジェクトをソリューションから削除しました。2.ソリューションを保存します。3. .suoを削除します。4.ソリューションを開き、プロジェクトを再度追加します。
SeanLAllen

1
SUOファイルを削除するとうまくいきました。
DanielV 2016年

回答:


96
  1. ワークスペースの管理に移動します(ファイル/ソース管理メニューまたはソース管理エクスプローラーのワークスペースドロップダウンから)
  2. ワークスペースの編集を選択します。
  3. 作業フォルダの下に、ソース管理ディレクトリからold / wrongプロジェクトディレクトリへのマッピングが表示されます。
  4. それを選択して[ 削除 ]をクリックします。
  5. VSを閉じて、suoファイルを削除します。

それでも間違ったディレクトリを参照しています。この時点でリバインドが機能するかもしれませんが、私はそれを試しませんでした。プロジェクトをリロードすれば、問題ありません。


1
また、ソース管理エクスプローラーのローカルパスリンクに騙されてはいけません。ワークスペースに複数のマッピングがあり、そこに私が期待していたものが表示されていましたが、プロジェクトをロードしようとすると、他のパスを使用していました。
ベンジャミンポッツ

1
.suoファイルは非表示になっているため、「すべてのファイルとフォルダーを表示する」オプションを有効にする必要があります
ANIL MANE

8
Visual Studio 2015でも同じエラーが発生しました。私にとってうまくいったのは、隠し.vsディレクトリと.suoファイルも削除することでした。
Daniel Leiszen、2015年

5
VS2015の場合、.suoファイルが思った場所にない場合があります。.slnファイルの横にあるものを削除し(「隠しファイルを表示」することを忘れないでください)、また、のサブディレクトリに1つ隠れてい.\.vs\[solution_name]\v14\.suoます。両方を入手したら、プロジェクトを再度追加できます。おっと-@DanielLeiszenへの部分的なクレジット(ちょうど彼が同じことをコメントしたことに気づいた)
Richard Hauer

1
私は.suoファイルを削除しなければならなかったし、勝つために正気のためにVSを再起動
Appulus

33

ソリューション.suoファイルを削除するだけでうまくいきました。


5
VS2015では、削除が<SolutionDir>\.vs\<SolutionName>\<VsVersion>\.suo機能する前に、すべてのVisual Studioインスタンスを閉じる必要がありました。
GraehamF 2016

12

Visual Source Safe 2005からTFS 2012への移行を実行した後、この問題に直面していました。次の2週間で "変換ウィザード"を待つことができなかったため、VSSConvert.exeを実行しました。これには6年ほどの歴史があり、TFSに移動しました。実際のタイムライン履歴は取得できませんでした。同じ日に、履歴の実際のチェックインを示すコメント付きの多数のエントリが表示されました。 。 悪くない。

だから、それが一晩中実行された後(成功しました、そうです!)、この質問が述べたように、プロジェクトのロードに問題がありました。何らかの理由で、いくつかのプロジェクトが誤ったディレクトリを参照していました。私は.sln、.vsprojファイルを確認し、最新の取得、再取得の削除、削除の追加などを行いました。

最後に... * .suoファイルとviola を削除しました。出来た。

私はこれに数時間を費やしました。


2
* .suoファイルを削除する前に、すべてのVisual Studioインスタンスを閉じてから、ソリューションを再度開いてください。
Mas

5

少し異なるソリューション。

TFSは特定のソリューションの存在しないパスを表示していました。以前は、別のD:ドライブを備えたラップトップを持っていましたが、現在はC:ドライブしかありません。TFSはまだ私のプロジェクトがD:\ Project \ MikesProjectに保存されていると考えていました

.suo削除するファイルがありませんでした。D:パスワークスペースのどこに記載されていませんFile\Source Control\Advanced\Workspacesメニューの下に埋め込まれています)。TFSは、(存在しない)Dに最新のファイルがあることを示しました。ディレクトリ、およびVS2013のTFSには、このプロジェクトの[マッピングの削除]オプションがありませんでした。

しかし、うまくいったのは、プロジェクトで単に「最新バージョンを取得」することでした。

そうした後、コードの新しいコピーが私のC:ドライブに書き込まれ、(興味深いことに)ローカルパスが下線付きで表示されました。

以前は、D:パスはこのように表示されませんでした。

奇数。非常に奇妙な。


2
まったく同じ状況です。パスが正しくないため、トリガーを引いて「最新を取得」するのをためらっていましたが、@マイクは私に勇気を与えてくれました!
ジョナサン


2

.suoファイルと.vsフォルダを削除した後でも、ファイルを編集して、正しいにもかかわらず.sln古い相対URLを削除する必要がありました。どうやらVSもヒントパスとして名前を使用しています。SccProjectName#SccLocalPath#


1

.suoファイル(拡張子を含む)を削除または名前変更してください。このファイルは、ソリューションファイルと同じ場所にあります。それは私のために働いた。


0

推測しただけですが、おそらく他のいくつかのプロジェクトが間違った場所からプロジェクトを参照していますか?この場合、プロジェクトを削除してソリューションに再挿入するだけでなく、参照プロジェクト(.csprojファイルに格納されている)から参照を削除して再作成する必要もあります。


回答ありがとうございます。プロジェクトは、ソリューション内の他のプロジェクトから参照されていません。ファイル内検索が機能しない理由を説明できますか?私の経験では、「検索」へのディレクトリパスを指定した場合、「ソリューション全体」を選択する代わりに、特定のファイルタイプのみを検索するように特に指示されない限り、すべてのファイルタイプを検索しますか?
Charlie Drewitt、2011年

申し訳ありませんが、正解です。 "ファイルの検索"は、ソリューションディレクトリではなく、ソリューション内のファイルに対してのみ使用していると思いました。見逃しました。だからそれはうまくいくはずです。エラーメッセージがポップアップしたときに、より詳細な説明を提供できますか?コンパイル時に発生するので、どのプロジェクトのコンパイルが失敗したかを確認できますか?
Doc Brown

0

多くの推奨事項を試した後、suoファイルを削除しました(もう一度)。前回は働いた。なぜそれが以前にうまくいかなかったのか私にはわかりません。一般に、私は最初に行う手順の1つとして、suoファイルを削除します。


0

開発ブランチからasp.net Webサイトソリューションを開いてもらいました。次に、他の目的のために、Mainブランチから同じソリューションを開きました。

devブランチの.ascx.csファイルの1つに変更を加え、ブレークポイントを設定しました。デバッガーを実行すると、Mainブランチにヒットしていた.ascx.csを除いて、すべてのブレークポイントがDevブランチにヒットしました。わからない

Temporaryフォルダーのクリーニングを試みましたが、機能しませんでした。

機能したもの:

Visual Studioのすべてのインスタンスを閉じました

Devブランチからソリューションを再度開きました。

もう一度実行すると、ブレークポイントがヒットし始めました。


0

私の場合、*。slnファイルをプロジェクトフォルダーにコピーし、プロジェクトのパスを* .slnファイルに変更しました。これだけが問題を解決しました(vs 2015 sp1、winserviseプロジェクト)。

削除* .suoは役に立ちません。


0

さらに別の解決策が私たちのために働きました-suoとこのスレッドで言及されているほとんどすべての削除を試みた後。ソリューションにプロジェクトがあり、csprojファイルのゴーストバージョンが表示されていました。そのファイルを削除し、追加しようとした別のプロジェクトでパスを修正しました。


-1

IISExpressではなくローカルIISでWebアプリを実行している場合は、プロジェクトのプロパティに移動して、[仮想ディレクトリの作成]ボタンを必ずヒットしてください。その後、「ソリューションのクリーン」と「ソリューションの再構築」を実行します。



-3

私はそれが古い行であることを知っています。私は同じ問題を経験しました。最近TFSを移行したため、新しいサーバーにマップする新しいワークスペースを作成し、古いワークスペースを保持しました。新しいワークスペースをターゲットとするソリューションを開くたびに、古いワークスペースを削除するまで、VSは常に古いマッピングディレクトリからプロジェクトをロードしようとしました。


これは、最初の質問に対する助けにはなりません
vlad_tepesch

私の問題は同じ性質を持っていると思いました。2つのワークスペースがあり、そのうちの1つは古いものです。私は新しいものの中で作業し、ソリューションを作成し、プロジェクトを追加しました。ソリューションを閉じなかった場合にのみ、すべてが問題ありません。しかし、ソリューションを保存してそれを開こうとすると、VSは常に、古いワークスペースにマップされたディレクトリからソリューション内のプロジェクトをロードしようとしました。
BackToSorrento 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.