C# Roslyn错误仅适用于.NET Core:“;ResolvePackageFileConflicts“;任务意外失败
我的代码负责根据解决方案文件路径使用Roslyn API获取类型名称空间;在查找名称空间之前,我使用以下内容获取文档:C# Roslyn错误仅适用于.NET Core:“;ResolvePackageFileConflicts“;任务意外失败,c#,abstract-syntax-tree,roslyn,code-analysis,roslyn-code-analysis,C#,Abstract Syntax Tree,Roslyn,Code Analysis,Roslyn Code Analysis,我的代码负责根据解决方案文件路径使用Roslyn API获取类型名称空间;在查找名称空间之前,我使用以下内容获取文档: using (var ws = MSBuildWorkspace.Create()) { var solution = await ws.OpenSolutionAsync(solutionPath); //[...] some code var diagnostics = ws.Diagnostics; //[...] some
using (var ws = MSBuildWorkspace.Create())
{
var solution = await ws.OpenSolutionAsync(solutionPath);
//[...] some code
var diagnostics = ws.Diagnostics;
//[...] some code
return solution.Projects.SelectMany(p => p.Documents);
}
当我将.NET Framework解决方案中的某个解决方案文件路径作为参数传递时,代码运行良好。但是,当我将.NET核心解决方案中的某个解决方案文件路径作为参数传递时,变量diagnostics
会得到一些错误(解决方案中的每个项目都有一个错误):
Msbuild在处理文件“[项目的.csproj文件]
”时失败
留言:
C:\Program\Files\dotnet\sdk\3.1.301\sdk\Microsoft.NET.sdk\targets\Microsoft.NET.ConflictResolution.targets:
(39,5):“ResolvePackageFileConflicts”任务意外失败。
System.IO.FileNotFoundException:无法加载文件或程序集
'NuGet.Versioning,版本=5.6.0.5,区域性=neutral,
PublicKeyToken=31bf3856ad364e35'。系统找不到指定的文件
两种解决方案(.NET Core和.NET Framework)都能正确编译。当我使用Roslyn分析.NET Core项目时,是否必须设置一些特定的配置?我在加载.NET Core 3.1项目时,成功地复制了这些配置。为了解决此问题,您可以将以下
NuGet
包引用添加到您的解决方案中:
- 框架
- NuGet.包装
- NuGet.ProjectModel
- 版本控制