C# 在将项目加载到工作区时,Roslyn是否只加载项目的元数据引用?
我尝试了上面的代码来获取所有外部引用,但它不包括引用的包和程序集。它只显示项目引用。 例如,对于具有多个引用类型的项目:C# 在将项目加载到工作区时,Roslyn是否只加载项目的元数据引用?,c#,.net-core,roslyn,roslyn-code-analysis,packagereference,C#,.net Core,Roslyn,Roslyn Code Analysis,Packagereference,我尝试了上面的代码来获取所有外部引用,但它不包括引用的包和程序集。它只显示项目引用。 例如,对于具有多个引用类型的项目: MSBuildLocator.RegisterDefaults(); var workspace = MSBuildWorkspace.Create(); workspace.LoadMetadataForReferencedProjects = true; var solution = workspace.OpenSolut
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);
}
}
“我的代码”无法获取被引用的包。它只获取被引用的项目,在本例中,它将是项目测试。您能否给出获取被引用的包和程序集的建议。nuget是否正确还原了您的项目
MSBuildWorkspace
今天无法处理自动恢复。我还将订阅工作区上的workspacefiled
事件,以查看加载我的项目已恢复的解决方案时是否存在任何问题。我检查了project.assets.json文件,它是恢复的输出。项目负载没有失败nuget是否正确恢复了您的项目MSBuildWorkspace
今天无法处理自动恢复。我还将订阅工作区上的workspacefiled
事件,以查看加载我的项目已恢复的解决方案时是否存在任何问题。我检查了project.assets.json文件,它是恢复的输出。而且项目的加载没有失败
<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>