Roslyn API和.netCore应用程序之间的兼容性

时间:2017-06-12 17:44:55

标签: c# .net-core roslyn roslyn-code-analysis

我尝试创建负责分析现有dll并基于此生成输出代码的应用程序。我创建了.netCore控制台应用程序作为入口点和几个.netCore类库,它们包含分析和生成逻辑。

我试图添加Mircosoft.Codeanalysis包参考时检测到第一个问题:

  

错误包Microsoft.Composition 1.0.27与。不兼容   netcoreapp1.1(.NETCoreApp,Version = v1.1)。包   Microsoft.Composition 1.0.27支持:portable-net45 + win8 + wp8 + wpa81   (.NETPortable,版本= V0.0,档案= Profile259)

通过添加.csproj文件设置解决了这个问题:

<PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+win81+wp8+wpa81</PackageTargetFallback>

这足以完成生成输出代码的应用程序的第一部分,但是当我尝试使用MsBuildWorkspace.Create()方法从输入dll获取sln,项目和目标类时,我遇到了这个错误:

  

错误CS0103当前不存在名称“MSBuildWorkspace”   上下文Roslyn.Codegen.WorkspaceParser

我认为它与在.netCore应用程序中使用Mircosoft.CodeAnalysis packag有关。

不幸的是,我没有找到任何有用的.netCore应用程序和Roslyn样本来获得这方面的最佳实践,我不确定Roslyn和netCore是否具有良好的兼容性。

这是github repo的链接: https://github.com/ddydeveloper/Roslyn.ApiClient.Codegen/tree/dev

那么,将Roslyn代码分析API和netCore应用程序混合起来是个好主意吗?你能给出任何好样本或建议如何解决Roslyn和netCore兼容性问题吗?

0 个答案:

没有答案