web-dev-qa-db-ja.com

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

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というエラーメッセージが表示されます。

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

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

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

100のプロジェクトに違いはなく、作業中の他のいくつかの開発者とソース管理に結び付けられているため、解決策を再現できないため、髪を引き裂いています。

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

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

まだ間違ったディレクトリを参照しています。この時点で再バインドが動作する可能性がありますが、私はそれを試しませんでした。プロジェクトをリロードすると、準備完了です。

93
Benjamin Potts

ソリューションを削除するだけで.suoファイルは私のために働いた。

31
Lloyd Powell

Visual Source Safe 2005からTFS 2012への移行を実行した後、この問題に直面していました。今後数週間で「Conversion Wizard」を待つことができなかったため、VSSConvert.exeを実行しました。これには6年ほどの歴史があり、それをTFSに移しました。実際のタイムライン履歴を取得できませんでした。同じ日に、履歴の実際のチェックインを示すコメントとともに多数のエントリを取得しました。 。 悪くない。

そのため、一晩中実行した後(成功しました!何らかの理由で、いくつかのプロジェクトが誤ったディレクトリを参照していました。 .sln、.vsprojファイルをチェックし、最新のものを取得し、再取得を削除し、削除を追加するなどしました。ここに記載されているすべてを試しました...ワークスペースをアップグレードしました。

最後に... *。suoファイルとヴィオラを削除しました。動いた。

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

12
hanzolo

わずかに異なるソリューション。

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

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

しかしdidの作業は、プロジェクトで「最新バージョンを取得」するだけでした。

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

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

奇数。非常に奇妙な。

5
Mike Gledhill

移動と名前変更についても同様の問題がありました。ローカルディレクトリを削除してから再び取得することで解決しました。

2
Tony Hopkinson

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

2
Adam

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

1
Mandeep Janjua

多くの推奨事項を試した後、suoファイルを削除しました(再び)。最後に働いた。以前に動作しなかった理由はわかりません。一般に、suoファイルを削除することは、最初に行う最初のステップの1つです。

0
user3097514

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

0
Rondakay

ローカルでWebアプリを実行している場合、IIS IISExpressの代わりに、プロジェクトプロパティに移動して[仮想ディレクトリの作成]ボタンを押してください。 「ソリューションの再構築」。

0
Ajinkya Surve

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

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

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

機能したもの:

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

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

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

0
gbs

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

0
Doc Brown

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

* .suoを削除しても役に立ちません。

0
Kamerton