Visual Studio プロジェクト ファイルは実際には単なる XML であるため、理論的にはファイルを として読み込んで、見つかっXmlDocument
たすべてのReference
ノードを選択することができます。これは、参照がサンプル VB.net プロジェクト ファイルに格納される方法の例です。.csproj ファイルでもそれほど変わらないと思います。
<ItemGroup>
<Reference Include="System.Data.Linq" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Printing">
</ItemGroup>
それができるようになったら、Include
属性の値から参照名のコレクションを構築し、期待する参照が含まれていることを確認するのは簡単です。
プロジェクトが持つ明示的な参照も、暗黙的なプロジェクトの依存関係です。これらは [ソリューション プロパティ]ウィンドウに表示されますが、編集することはできません。
編集
明示的な参照に加えて手動で選択された、ソリューションのプロジェクトの依存関係を探している場合は、.sln ファイルでそれらを見つけることができます。
[ソリューション プロパティ]ウィンドウでプロジェクトの依存関係を手動で選択すると、 ProjectSection(ProjectDependencies)セクションがProjectのセクション内に作成されます。
たとえば、次は .sln ファイルの通常のプロジェクト エントリです。
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "MyProject",
"Source\MyProject\MyProject.vbproj",
"{AB5BA87B-77D5-4812-B02C-9B4FB87F4EF6}" EndProject
後でプロジェクトの依存関係を手動で追加した場合、そのプロジェクトは次のようになります。
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "MyProject", "MyProject\MyProject.vbproj", "{AC1BE764-AC53-47B0-9608-648C28D3BB79}"
ProjectSection(ProjectDependencies) = postProject
{10F4313B-A586-4CC6-BAFE-51930EC8C68F} = {10F4313B-A586-4CC6-BAFE-51930EC8C68F}
EndProjectSection
EndProject
の追加に注意してくださいProjectSection(ProjectDependencies)
残念ながら、プロジェクト ファイルとは異なり、ソリューション ファイルは XML ではありません。これにより、ファイルをテキストとして直接解析することがより困難になります。また、ソリューション ファイル内のプロジェクトは GUID に関連付けられており、後でそれらを参照するセクションでは、プロジェクト名ではなく、その GUID が使用されます。また、GUID からプロジェクト名へのマップを作成するために、ソリューション ファイルに対して少し前処理を行う必要があるため、少し複雑になります。その時点で、ソリューション ファイルから明示的なプロジェクトの依存関係を一覧表示し、追加されたものが追加されることを期待していたものかどうかを比較できます。