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" ] },