c# – 进入Roslyn构建过程

是否有可能在Visual Studio / TFS构建期间挂钩Roslyn构建过程,如果是,是否可以获得Roslyn在编译期间使用的Microsoft.CodeAnalysis.solution / Microsoft.CodeAnalysis.Project实例?

解决方法

就我看来,乔恩的评论非常正确.我建议创建一个MSBuild任务,这是您在构建过程中想要的钩子.

创建一个MSBuild项目文件(您可能已经看过它们,它是那些扩展名为.targets的文件)​​.它看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<Project Toolsversion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <UsingTask TaskName="MyNamespace.MyReferenceValidationTask" AssemblyFile="MyPath\MyNamespace.dll"/>
    <Target 
        BeforeTargets="BeforeCompile"
        Name="ValidationTarget">
        <MyNamespace.MyReferenceValidationTask
            SolutionRoot="$(SolutionDir)" />
    </Target>
</Project>

“MyNamespace.MyReferenceValidationTask”标记“SolutionRoot”中的属性是您的任务中的属性. Visual Studio中提供的所有宏也可在此处获得. (见这篇文章https://stackoverflow.com/a/1453023/978594)

你在任务中做的事完全取决于你.例如,您可以使用Roslyn加载解决方文件,从而拥有所有项目及其参考,并进行所需的验证.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...