Visual Studio 2008を使用した後、Visual Studio Team Foundationにチェックインされているソリューションを開くと、次のようなダイアログが表示されます。
最近、プロジェクトがこのソリューションに追加されました。それらをソース管理から取得しますか?
これは、ソリューションが読み込まれるたびに発生します(プロジェクトが追加されていない場合でも)。私がこの小さな煩わしさを取り除くために見つけた唯一の方法は、SLNファイルを完全に再構築することです。
誰かがより良い/より簡単な方法を見つけましたか?
ねえ、これは実際に約4年前に私に起こりました。
まず、ビジュアルスタジオのインストールに適用されたすべての更新がチームの誰かにあるわけではないようです。あちこち移動して、お使いのVSバージョンの最新のサービスパックにアップグレードしてください。
それが完了したら、ソリューションをアンバインドし、ファイルを修正して再バインドし、TFSプロジェクトの最新情報を強制的に取得するよう全員に指示します。
http://www.nivisec.com/2008/09/vsts-projects-have-recently-been-added.html
(リンク切れ: http://technorati.com/posts/Yadz3Mj1pxHPSJLlnUs1tL1sIwU5jXa5rNBbIAnYdvs%3D )
ソリューションでいくつかのプロジェクトを移動した後、最近これが発生しました。私は最終的に解決しました、各プロジェクトは実際にソリューションファイルに表示されますmultiple回それぞれパス情報!そのため、プロジェクトのメインリファレンスのパスは正しくても、ファイルのさらに下のほうで間違っていました。
.slnファイルを調べて、allのパスが各プロジェクトの参照であることを確認してください。
たとえば、私のプロジェクトの最初の参照は次のとおりです。
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ObexPushVB", "Samples\ObjectPush\ObexPushVB\ObexPushVB.vbproj", "{E3692A59-D636-48E8-9B57-7DA80A88E517}"
EndProject
私の場合、パスは正しく更新されました。しかし、そのプロジェクトにも対応しています。
SccProjectUniqueName8 = Samples\\ObjectPush\\ObexPushVB\\ObexPushVB.vbproj
SccProjectTopLevelParentUniqueName8 = InTheHand.Net.Personal.sln
SccProjectName8 = Samples/ObjectPush/ObexPushVB
SccLocalPath8 = Samples\\ObjectPush\\ObexPushVB
したがって、これらのパスもすべて更新する必要がありました。手動で修正した後は、すべて順調でした。 (サンプルは修正後のBTWです)。
このメッセージは、ソリューションの場所がソリューションディレクトリの外部にあるが、物理的に存在しない(つまり、ソリューションを開く前にチェックアウトしていない)プロジェクトへの参照がソリューションにある場合にも発生します。その後、VSS(またはTFS)がそのメッセージを表示し、[OK]をクリックすると、不足しているプロジェクトの最新版が自動的に取得されるため、ソリューションにはアンロードされたプロジェクトが含まれません。
[〜#〜]編集[〜#〜]:
それをもう一度読んで私は混乱しています。基本的に、ソリューションが、ソリューションが含まれているフォルダーの内部にないプロジェクトへのソース管理バインディングを持ち、その外部プロジェクトが物理的にマシンに存在しない場合に、メッセージが表示されます。 [OK]をクリックすると、プロジェクトがチェックアウトされます。
私の場合、それは削除されたテストプロジェクトへの参照でした。
ソリューションエクスプローラーですべてのプロジェクトを調べたところ、私たちのチームはソリューションフォルダーを使用しているため、通常は表示されません。また、テストプロジェクトであるため、アプリケーションに影響はありませんでした。
ソリューションからプロジェクトを削除すると、メッセージは表示されなくなります。
Visual Studio 2013を使用しています。
私にとって、それは私のソリューションのフォルダーの構造を変更した後に発生しました(プロジェクトのサブフォルダーをソースコードエクスプローラーに直接追加しました)。ソリューションエクスプローラーを使用して、ソリューションからすべてのプロジェクトを削除することにより、この退屈なエラーを取り除きました。その後、Visual Studioを閉じ、手動で.slnファイルを編集して、セクション全体を削除しました。
GlobalSection(TeamFoundationVersionControl) = preSolution
最後に、ソリューションエクスプローラーを使用して、プロジェクトをソリューションに「既存のプロジェクト」として追加しました。 Visual Studioは、.slnファイルの削除されたセクションを自動的に再作成します。
同じエラーメッセージは、誰かがプロジェクトを追加し、編集したソリューションファイルをチェックインしても、プロジェクトディレクトリをソース管理に追加しない場合に発生する可能性があります。
簡単に言えば、このエラーは、.slnファイルに.csprojファイルへの参照があるのに、.csproj自体が物理的に欠落していることを意味します。
ソース管理(VSTS)されているいくつかの単体テストプロジェクトを別のフォルダーに移動した後、この問題が発生しました。この後、ブランチを開くたびに、「プロジェクトがこのソリューションに最近追加されました。ソース管理から取得しますか?」エラー。
なんらかの理由で、トランクのcsprojファイルがソース管理されていなかったため、ブランチバージョンにはありませんでした。これは、ソース管理されたプロジェクトを移動した後に発生することがあります。
これを修正するには、元のソーストランクを開き、ソース管理エクスプローラーを使用して不足しているファイルを追加し、トランクをブランチにマージして、不足しているcsprojファイルをコピーしました。
この後、警告がポップアップすることなく、分岐バージョンを開くことができました。
私の場合、VSでa(n)(unloaded)プロジェクトの名前を変更しました。プロジェクトは新しいフォルダに正しく移動され、データは失われませんでした。ただし、ソリューションファイルはまだ古いディレクトリを指していますこれはまだ存在していましたが、空でした(プロジェクトを実際にロードできませんでした)。
ソリューションからプロジェクトを削除した後(フォルダーがすでに空だったので問題ありませんでした)、問題は解決しました。
新しい場所からプロジェクトを再度追加しても問題ありませんでした。