【发布时间】:2017-05-25 11:34:52
【问题描述】:
如何访问在 Roslyn 代码分析器中编译的项目/解决方案的文件路径?我需要根据与代码相关的一些规范文件来验证代码。不起作用的事情:
SyntaxTreeAnalysisContext.Tree.FilePath
Assembly.GetExecutingAssembly().Location
AppDomain.CurrentDomain.BaseDirectory
Environment.CurrentDirectory
Path.GetFullPath(relativePath)
【问题讨论】:
-
Roslyn 分析器存在于工作区层之下;解决方案可能实际上并不存在。
-
所以定义上是不可能的?
-
如果你努力,你可以让它只在 VS 中工作(尝试从全局 ServiceProvider 获取 SComponentModel,然后获取 Roslyn VisualStudioWorkspace)。但是,这会很脆弱,并且在 VS 之外根本不起作用。
-
@slaks。您应该真正回答问题,而不是仅仅发布带有答案的评论。