roslyn-code-analysis

    1热度

    1回答

    我正在使用Microsoft.CodeAnalysis和.MSBuild加载解决方案,它的项目和检索项目OutputFilePath。麻烦是调试和发布有不同的,我不能找出一种方法来切换解决方案配置。任何想法如何设置将使用哪种配置? MSBuildWorkspace workspace = MSBuildWorkspace.Create(); workspace.LoadMetadataForRe

    0热度

    1回答

    我正在使用以下代码来检索在代码块中使用的所有符号。这包括对符号的声明和引用。 不幸的是,GetSymbolInfo调用非常慢,因为这个方法花费的时间可能很长。有没有办法加快这一点? public static IEnumerable<ISymbol> GetAllSymbols(CSharpCompilation compilation, SyntaxNode root) {

    0热度

    1回答

    我想弄清楚在相应的构建配置/平台设置中启用/禁用哪个项目。我在哪里可以找到这个“project.BuildsInCurrentConfiguration”信息? var properties = new Dictionary<string, string> { { "Configuration", "Debug" }, { "Platform", "x86"} }; M

    1热度

    2回答

    我想将现有的CSharpCompilation对象包含到新的CSharpCompilation对象中。类似于c#中的项目到项目的引用。 我目前的解决方案是在新编译中包含第一个编译的语法树,但是当我需要比较两个编译中的符号(它们不相同)时会出现问题。 MetadataReference.CreateFrom ...(),不包含编译的重载。 这是可能的吗?

    6热度

    1回答

    我试图发明很好的方法来将我的Roslyn分析器项目打包到NuGet中。 它需要将具体的NuGet包结构与.dll放入\analyzer\,而不是\lib\。 为此,我必须拨打nuget pack <name>.nuspec而不是nuget pack <name>.csproj。但是,如果我使用nuspec,则会忽略$ version $标记。 似乎我唯一的选择是在每次重建时手动更新.nuspec中

    0热度

    1回答

    在我的VS 2015扩展中,我需要将边距字形添加到从Web服务返回的行数(Web服务仅返回行数)。 MSDN包含以下示例,它跟踪编辑器中的文本并相应地添加边距字形,但此示例代表更复杂的场景,并且与我的要求不符,请告知如何实现此目的。 https://msdn.microsoft.com/en-us/library/ee361745%28v=vs.100%29.aspx?f=255&MSPPErro

    0热度

    1回答

    当我尝试使用Roslyn SyntaxGenerator.IdentifierName为基元类型创建标识符时,它将转义添加到Identifier.Text。 var generator = SyntaxGenerator.GetGenerator(document); // genericTypeArg.Identifier.ValueText = "@double" var generic

    0热度

    3回答

    目前我正在为roslyn编写c#的简单代码分析。我需要解析一个解决方案中所有项目的所有文档,并在本文档中获取已声明的使用类。 例如来自: class Program { static void Main(string[] args) { var foo = new Foo(); } } 我想Program使用Foo。 我已经解析了所有文档并获取了声

    -2热度

    1回答

    我开发了以下代码以使用Microsoft.CodeAnalysis.Emit库生成dll文件。该代码成功生成C#项目的dll文件。但是,它不能成功构建Visual Basic项目。它会为使用VS IDE成功构建的VB项目引发大量编译器错误。请参阅基本Windows应用程序项目引发的错误。 VB项目有没有特定的编译器选项?请咨询如何解决这个问题。 Microsoft.CodeAnalysis包版本:

    2热度

    1回答

    如何在Visual Studio 2017 .NET核心项目中添加对Roslyn Analyzers(.ruleset)的支持? 在 “project.json”,它是通过使用buildOptions配置: "buildOptions": { "additionalArguments": [ "/ruleset:rules.ruleset" ] },