我在解析一个非常基本的.NET4.6应用程序时遇到了RoslynDiagnostics错误。解决方案文件可以从那里下载
https://github.com/dotnet/roslyn/files/2393288/DemoSolution.zip
BLL->分贝
解决方案和项目构建得很好,但Roslyn仍然给出了这些错误。也许错误是误导性的,我需要以某种方式配置项目?你知道我怎么解决这些错误吗?
以下是用于解析文件的代码:
var properties = new Dictionary<string, string>
{
["DesignTimeBuild"] = "true",
["CheckForSystemRuntimeDependency"] = "true"
};
var workspace = MSBuildWorkspace.Create(properties);
workspace.WorkspaceFailed += (sender, args) =>
{
};
workspace.LoadMetadataForReferencedProjects = true;
Solution solution = workspace.OpenSolutionAsync(SolutionFilePath).Result;
foreach (var p in solution.Projects)
{
foreach (var file in p.Documents)
{
var semanticModel = file.GetSemanticModelAsync().Result;
var mscorlib = MetadataReference.CreateFromFile(file.FilePath);
var compilation = CSharpCompilation.Create("MyCompilation",
new[] { semanticModel.SyntaxTree }, new[] { mscorlib });
var model = compilation.GetSemanticModel(semanticModel.SyntaxTree);
var declarationDiagnistics = model.Compilation.GetDeclarationDiagnostics(CancellationToken.None);
var parseDiagnostics = model.Compilation.GetParseDiagnostics(CancellationToken.None);
var allDiagnostics = model.Compilation.GetDiagnostics(CancellationToken.None);
var methodBodyDiagnostics = model.Compilation.GetMethodBodyDiagnostics(CancellationToken.None);
}
}
Msbuild在处理文件“MYPATH”时失败\BLL.csproj公司“与
消息:C:\Program Files(x86)\Microsoft Visual
工作室\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion版本.目标:
(1656,5):“GetReferenceNearestTargetFrameworkTask”任务无法启动
视觉
请验证任务程序集是否已使用相同版本生成
计算机和主机应用程序不缺少绑定
重定向到Microsoft.Build.Framework. 无法强制转换类型的对象
'NuGet.Build.Tasks任务.GetReferenceNearestTargetFrameworkTask'以键入
'Microsoft.Build.Framework“伊塔斯克”。C:\程序文件(x86)\Microsoft
工作室\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion版本.目标:
声明或使用不当,或在施工过程中失败。检查