web-dev-qa-db-ja.com

プロジェクトファイルに<SccProjectName>がないと、「プロジェクトファイルがソース管理にバインドされていない」のはなぜですか

私は非常に迷惑な問題を抱えていましたが、解決策を見つけましたが、なぜそのように動作するのかをお聞きします...

TFS 2012でVisual Studio 2012を使用しています。すべて問題はありませんでしたが、ある日問題が見つかりました。ソリューションに新しいプロジェクトを追加すると、ソリューションを再び開くたびに次のメッセージが常に表示されます。

このプロジェクトファイル...はソース管理にバインドされていませんが、ソリューションにはソース管理バインド情報が含まれています。欲しいですか...

私が何をしたにせよ、私にはまだこのメッセージがあります。 「ファイル」->「ソース管理」->「詳細設定」->「ソース管理の変更...」ウィンドウでは、すべてが順調でした。 * .vspsccファイルは、適切なコンテンツで適切に作成されています。バインディングを削除して何度も追加していましたが、役に立ちませんでした。いつもこの迷惑なメッセージがありました...

そして、*。csprojファイルの1つの違いを見つけました。問題のあるプロジェクトには、次のXMLデータがありませんでした。

<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>

これらの行を追加したところ、問題は解決しました...

なぜこれらの要素が欠けているのか、そしてなぜそれらがソリューションのバインディングに関する迷惑なメッセージでそのような終わりのない問題を引き起こすのかを教えてくれる人はいますか?

ありがとうございました

28
user2323704

これは、ソリューションファイルにソース管理情報が含まれており、.csprojファイルがソリューションファイルが伝える内容を実装するだけだからです。

<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>

SAKはソリューションファイルから情報を取得するため、「Should Already Know」を参照します。ソリューションファイルには、次に示すような内容が含まれている必要があります。

GlobalSection(TeamFoundationVersionControl) = preSolution
        SccNumberOfProjects = 4
        SccEnterpriseProvider = {3BA58AB2-18FA-4F8D-95D4-32DDF27D184A}
        SccTeamFoundationServer = http://TFSSERVER:8080/tfs/DPC
        SccLocalPath0 = .
        SccProjectUniqueName1 = Project1\\Project1.csproj
        SccProjectName1 = Project1
        SccLocalPath1 = Project1
        SccProjectUniqueName2 = Project2\\Project2.csproj
        SccProjectName2 = Project2
        SccLocalPath2 = Project2
        SccProjectUniqueName3 = Project3\\Project3.csproj
        SccProjectName3 = Project3
        SccLocalPath3 = Project3
        SccProjectUniqueName4 = Project4\\Project4.csproj
        SccProjectName4 = Project4
        SccLocalPath4 = Project4
    EndGlobalSection

ここで起こり得ることは、ソリューションとプロジェクトを最初にチェックインした人がSolution.vsssccファイルをインクルードしない場合、Visual Studioがソース管理を決定できないことです。これが発生した場合は、vsssccファイルを削除してソリューションを閉じます。ソリューションを再度開くと、新しいvsssccファイルが作成されます。これがソース管理にチェックインされていることを確認してください。

プロジェクトを追加するときに確認するもう1つのことは、ソリューションファイルがチェックアウトされ、プロジェクトを送信するときに再びチェックインされることを確認してください。

ソリューションファイルとvsssccファイルがソース管理によって正しく処理される限り、新しいプロジェクトを追加するときに、ソリューションファイルからソース管理設定を取得し、SCC Nodes to新しいプロジェクト

42
Just TFS