39

私は非常に厄介な問題を抱えていました。解決策を見つけましたが、なぜそのように振る舞うかをお聞きしたいです...

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

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

私が何をしたとしても、私はまだこのメッセージを持っています。File->Source Control->Advanced->Change Source Control...' ウィンドウでは、すべて問題ありませんでした。*.vspscc ファイルは適切なコンテンツで適切に作成されています。バインディングを削除して追加を繰り返していましたが、役に立ちませんでした。ずっと迷惑メールだったのに…

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

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

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

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

ありがとうございました

4

1 に答える 1

62

これは、ソリューション ファイルにソース管理情報が含まれており、.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 ノードが新しいプロジェクトに適用されます。

于 2014-08-14T13:33:52.183 に答える