TFSソース管理からVS 2008プロジェクトをロードしようとすると、次のエラーが表示されます。
プロジェクトファイルが移動されたか、名前が変更されたか、コンピューター上にありません
[OK]をクリックすると、プロジェクトに「使用不可」と表示されます。何が問題ですか?どうすれば解決できますか?以前にこの問題は一度もなかった。一部のブログでは.suoファイルを削除すると言われていますが、.suoファイルが見つかりません。ローカルコンピューター上のプロジェクト全体を削除したため、次回開くときに新しいプロジェクトが作成されますが、それでも同じエラーが発生します。
通常、それを修正するのに役立つのは、ソリューションユーザーオプション(別名「SUO」)を削除することです。
VS 2013まで
古いVSでは、「非表示」として保存されますSolutionName.suo
メインと同じフォルダー内.sln
ファイル。
VS2015以降
VS2015では、同じ日付が「非表示」に移動しました.vs
メインフォルダーと同じフォルダーの下のフォルダー.sln
ファイル。
プロジェクトの名前を変更した後、VS 2013を使用してこの問題に遭遇しました。スタンレーの答えは私を解決へと導いた:
VSを閉じます-.suoファイルを削除します-VSを再度起動します。
.suoファイルを特別な方法で削除します。
TFSは、ほとんどのソース管理パッケージと同様に機能します。コンピューターに保存されている内容を記憶するため、「最新版を取得」するときは、すべてを取得するのではなく、最後の「取得」以降の変更を取得するだけで済みます。
これには1つの注意点があります。ディスク上のローカルファイルを削除または名前を変更しても、TFSはこれを行ったことを認識せず、ファイルが残っていると判断します。
その後、「最新版を入手」すると、見つからないファイルを更新する必要がなくなります。
その場合、TFSやその他のファイル検索ツールから、あらゆる種類の「ファイルが見つかりません」というエラーが発生する可能性があります。
それを回避するには、以下を行う必要があります。
ローカルで変更された(書き込み可能な)ファイルがある場合は注意してください。これらを上書きして変更を失う2番目のオプションがあります。ただし、バックアップがあるため、安全である必要があります。一般に、このオプションにチェックを入れて、すべてのソースコードが完全に最新であることを確認することをお勧めします。 (ただし、ローカルの変更を失うことを気にしない場合にのみ明らかに!)
OKをクリックすると、プロジェクト内のすべてのファイルがローカルドライブに強制的に取得され、問題が修正されます。
VSの欠陥としてはよく知られていますが、間違いなく対処できます!
編集モードでソリューションファイルを開く
変更/移動された物理パスと一致するように相対パスを変更します..
SccProjectUniqueName1 = Source\\Order\\Order.csproj
SccProjectName1 = Order.ApplicationService
SccLocalPath1 = Order.ApplicationService
また、参照プロジェクトの正しい相対パスの確認
Project("{asdasd-301F-11D3-BF4B-asdasd}") = "Order",
"Source\Order\Order.csproj", "{E25641BC-C990-40E2-8876-08AE8728F763}"
EndProject
.slnではなく.csprojまたは.vbprojを開いてみてください。おそらく発生したのは、.sln(ソリューション)ファイルに、コンポーネントプロジェクトへの(相対パスではなく)絶対ファイル参照があることです。 .slnを再作成するか、手動で編集する必要がある場合があります。
私が解決した最も簡単なオプションは次のとおりです:
私の場合、.suoファイルの削除では不十分でした。ワークスペースの設定にエラーがあることを発見しました。次の手順で問題を発見し、解決しました。
チームエクスプローラーで、「ワークスペースの管理...」
「編集...」をクリックします
「ローカルフォルダ」の下の値を修正します
最後に、受け入れられた回答ごとに影響を受ける.suoファイルを削除します。
新しいソリューションslnファイルを作成するのが最も簡単であることがわかりました。
ワークスペースのマッピングをクリアします(ファイル->ソース管理->ワークスペース)。ワークスペースを編集して、すべてのマッピングをクリアするか(より多くの影響)、またはこのサーバーパスに関連付けられているマッピングを見つけます。次に、ソース管理エクスプローラーを開き、再マップします。ソース管理エクスプローラーでSLNをダブルクリックすると、最新になります。何が起こったのか、どういう状態になったのかは完全にはわかりませんが、これで再び動けるはずです。
この問題にぶつかり、同僚から.rptproj
ファイルを取得してローカルディレクトリにコピーすることで解決できました。その後、プロジェクトを再ロードできました。
これに対する解決策
場合によっては、.sln
および.csproj
パスと名前を手動で入力すると、プロジェクトを含むフォルダー名を確認するのを忘れることがあります。
この問題を解決するために多くの時間を費やしました。これらの手順を実行しました:プロジェクトの名前変更、名前空間の名前の変更、プロジェクトフォルダーの名前の変更、.slnファイルの編集、非表示の.suoファイルの編集。プロジェクトはロードされましたが、TFSでは認識できませんでした!最後に、私は このガイド を見つけました。
ソリューションエクスプローラーでプロジェクトを右クリックし、[名前の変更]を選択して、新しい名前を入力します
プロジェクトをもう一度右クリックし、[プロパティ]を選択します。 [アプリケーション]タブで[アセンブリ名]と[既定の名前空間]を変更します。
プロジェクトを再度右クリックして、「リファクタリング」->「名前空間の調整」を選択します。変更を受け入れます。
Properties/AssemblyInfo.csでAssemblyTitleとAssemblyProductを変更します
Windowsエクスプローラーでbinおよびobjディレクトリを削除する
ソース管理エクスプローラーを開き、プロジェクトのディレクトリの名前を変更します。これにより、ソリューションが閉じられます。閉じてください。
SLNファイルを(Notepad ++などのテキストエディターで)開き、プロジェクトへのパスを変更します(複数の場所が必要です)。
ソリューションを再度開きます。プロジェクトをクリーンして再ビルドします。
使用できないプロジェクトを右クリックしてプロジェクトファイルを編集します。可能性としては、ハードコードされたファイルパスまたはプロジェクトをチェックアウトした場所と一致しない仮想パスが見つかります。
親切、
ダン