进入Roslyn构建过程

时间:2014-11-21 21:02:55

标签: c# msbuild roslyn msbuild-task

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

1 个答案:

答案 0 :(得分:0)

我认为,乔恩的评论非常正确。我建议的是创建一个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>

&#34; MyNamespace.MyReferenceValidationTask&#34;中的属性标签&#34; SolutionRoot&#34;是你的任务中的财产。 Visual Studio中提供的所有宏也可在此处获得。 (请参阅此帖:https://stackoverflow.com/a/1453023/978594

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