私はVS 2013でこの問題に遭遇しました。分離できなかった(できなかった)何かが、CSPROJファイルのGUIDを変更していました。CSPROJファイルがSVNにチェックインされているため、ローカル開発のGUIDを変更することはできませんでした。代わりに、私は常にローカルの変更が発生するたびにSVNを元に戻していました。
まず、変化するGUIDの問題を解決する必要がありました。
- CSPROJをチェックインバージョンに戻します。
- VSではなく、テキストエディタでCSPROJを開きます。
初期のCSPROJファイルから値を抽出します。
{B1234567-5123-4AAE-FE43-8465767788ED}
VSではなくテキストエディタでSLNファイルを開きます。
ソリューションでプロジェクト参照を見つけます。
Project( "{FAE12345-3210-1357-B3EB-00CA4F396F7C}")= "Some.Project"、 ".... \ assemblies \ Some.Project \ Some.Project.csproj"、 "{B7654321-5321-4AAE- FE3D-ED20900088ED} "EndProject
リストされている最初のGUIDはソリューションGUIDです。SLNで参照されるすべてのプロジェクトについて、最初の引数でこの値が繰り返されているのがわかります。.csprojに続くGUIDは、初期のGUIDで置き換えるものです。
これは最初の問題を解決するはずですが、メタデータの「定義へ移動」ランディングは解決されません。私たちのSLNファイルにはマスタープロジェクト(私たちのWebサイト)があるため、SLNファイルのエントリには、複数のGUID値を持つProjectSectionエントリが含まれている必要があります。次に例を示します。
ProjectSection(ProjectDependencies) = postProject
{AC50D230-24C4-4DCA-BAAD-355E6AF5EFBD} = {AC50D230-24C4-4DCA-BAAD-355E6AF5EFBD}
EndProjectSection
このコレクションに欠落しているGUIDは、私の初期のプロジェクトのものです。
- ProjectSectionとEndProjectSectionの間の最後のエントリとして、不足しているGUIDを追加します。形式は行ごとに表示され、{GUID} = {GUID}です。
- ファイルを保存します。
- ソリューションを開きます。
- 新しく追加したプロジェクトの参照を右クリックし、[定義に移動]をクリックします。