1
 MSBuildLocator.RegisterDefaults();
        var workspace = MSBuildWorkspace.Create();
        workspace.LoadMetadataForReferencedProjects = true;
        var solution = workspace.OpenSolutionAsync("C:\\Users\\Dell\\Desktop\\TestCompilation\\RoslynDetectingApproach\\RoslynDetectingApproach.sln").Result;
        foreach (var project in solution.Projects)
        {
            var compilation = await project.GetCompilationAsync();
            var metadata = compilation.ExternalReferences;
            foreach (var item in metadata)
            {
                System.Console.WriteLine(item.Display);
            }
        }

すべての外部参照を取得するために上記のコードを試しましたが、参照されているパッケージとアセンブリは含まれていません。プロジェクト参照のみが表示されます。たとえば、多くの参照タイプを持つプロジェクトの場合:

<ItemGroup>
  <PackageReference Include="Microsoft.Build.Locator" Version="1.2.6" />
  <PackageReference Include="Microsoft.CodeAnalysis" Version="3.6.0" />
</ItemGroup>
<ItemGroup>
  <ProjectReference Include="..\Test\Test.csproj" />
</ItemGroup>

私のコードは参照されたパッケージを取得できず、参照されたプロジェクトのみを取得します。この例ではプロジェクト Test になります。参照されたパッケージとアセンブリを取得するための提案をお願いします。

4

0 に答える 0