Tag: vs 2015 preview

如何使用Roslyn代码诊断识别和分析局部变量和参数?

我很困惑在AnalysisContext context对象上使用哪种方法来使每个函数/方法的局部变量都是anazlyed: RegisterSymbolAction()或RegisterSyntaxNodeAction() 。 根据Roslyn SDK Project Templates.vsix中的示例Diagnostic with Code Fix(NuGet + VSIX),它可能是RegisterSymbolAction() 。 我正在调试使用一个简单的控制台应用程序,其Main()有一些string和int类型的局部变量。 我已经尝试过这两个,但是它们都不会触发任何变量在各自的AnalyzeSymbol()回调方法中进行分析。 每个回调方法中的断点都不会受到局部变量的影响。 如何在回调方法AnalyzeSymbol()分析局部变量和/或我做错了什么? var symbolsToActOn = new[] { SymbolKind.Local, SymbolKind.Parameter, SymbolKind.Field }; context.RegisterSymbolAction(AnalyzeSymbol, symbolsToActOn); 要么 var syntaxTypes = new[] { SyntaxKind.IdentifierName, SyntaxKind.IdentifierToken, SyntaxKind.Parameter }; context.RegisterSyntaxNodeAction(AnalyzeSyntaxNode, syntaxTypes); 我的演示项目在GitHub上进行了仔细研究,具体部分在DiagnosticAnalyzer.cs中 。

ASP.NET vNext – MissingMethodException:找不到方法:Microsoft.CodeAnalysis.Diagnostic> EmitResult.get_Diagnostics()’

我今天早上升级到VS2015 RC,并使用ASP.NET 5模板 – 网站创建了一个新项目。 我有一个错误,我无法解决: 处理请求时发生未处理的exception。 MissingMethodException:找不到方法:’System .Collections.Immutable.ImmutableArray`1 Microsoft.CodeAnalysis.Emit.EmitResult.get_Diagnostics()’。 Microsoft.AspNet.Mvc.Razor.RoslynCompilationService.Compile(RelativeFileInfo fileInfo,String compilationContent) 这是完整的错误堆栈: MissingMethodException:找不到方法:’System.Collections.Immutable.ImmutableArray`1 Microsoft.CodeAnalysis.Emit.EmitResult.get_Diagnostics()’。 Microsoft.AspNet.Mvc.Razor.RoslynCompilationService.Compile(RelativeFileInfo fileInfo,String compilationContent) Microsoft.AspNet.Mvc.Razor.RazorCompilationService.Compile(RelativeFileInfo文件) Microsoft.AspNet.Mvc.Razor.CompilerCache.OnCacheMiss(RelativeFileInfo文件,String normalizedPath,Func`2编译) Microsoft.AspNet.Mvc.Razor.CompilerCache.GetOrAddCore(String relativePath,Func`2 compile) Microsoft.AspNet.Mvc.Razor.CompilerCache.GetOrAdd(String relativePath,Func`2 compile) Microsoft.AspNet.Mvc.Razor.VirtualPathRazorPageFactory.CreateInstance(String relativePath) Microsoft.AspNet.Mvc.Razor.RazorViewEngine.LocatePageFromViewLocations(ActionContext context,String pageName,Boolean isPartial) Microsoft.AspNet.Mvc.Razor.RazorViewEngine.GetRazorPageResult(ActionContext context,String pageName,Boolean isPartial) Microsoft.AspNet.Mvc.Razor.RazorViewEngine.FindView(ActionContext context,String viewName) Microsoft.AspNet.Mvc.Rendering.CompositeViewEngine.FindView(ActionContext context,String viewName,Boolean partial) Microsoft.AspNet.Mvc.Rendering.CompositeViewEngine.FindView(ActionContext context,String viewName) Microsoft.AspNet.Mvc.ViewResult.d__20.MoveNext() —从抛出exception的先前位置开始的堆栈跟踪结束— System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) System.Runtime.CompilerServices.TaskAwaiter.GetResult() Microsoft.AspNet.Mvc.Core.FilterActionInvoker.d__44.MoveNext() —从抛出exception的先前位置开始的堆栈跟踪结束— […]

参考用于CI构建的Microsoft.VisualStudio.QualityTools.UnitTestFramework

我在VS2015 RC中创建了一个C#测试项目。 它在本地构建,但是当我尝试在我们的CI构建服务器(TeamCity)上构建时,它会失败并出现错误: UnitTest1.cs(2,17):错误CS0234:命名空间“Microsoft”中不存在类型或命名空间名称“VisualStudio”(您是否缺少程序集引用?)[D:\ BuildAgent \ work \ e486bf18e454d0c2 \ dh。 PSP.Coordinator.Api.Tests \ dh.PSP.MetadataService.Api.Tests.csproj] UnitTest1.cs(9,10):错误CS0246:找不到类型或命名空间名称’TestMethod’(您是否错过了使用指令或程序集引用?)[D:\ BuildAgent \ work \ e486bf18e454d0c2 \ dh.PSP.Coordinator.Api.Tests \ dh.PSP.MetadataService.Api.Tests.csproj] UnitTest1.cs(9,10):错误CS0246 :找不到类型或命名空间名称’TestMethodAttribute’(您是否缺少using指令或程序集引用?)[D:\ BuildAgent \ work \ e486bf18e454d0c2 \ dh.PSP.Coordinator.Api.Tests \ dh.PSP。 MetadataService.Api.Tests.csproj] UnitTest1.cs(6,6):错误CS0246:找不到类型或命名空间名称’TestClass’(您是否缺少using指令或程序集引用?)[D:\ BuildAgent \工作\ e486bf18e454d0c2 \ dh.PSP.Co ordinator.Api.Tests \ dh.PSP.MetadataService.Api.Tests.csproj] UnitTest1.cs(6,6):错误CS0246:找不到类型或命名空间名称’TestClassAttribute’(您是否缺少using指令或程序集引用?)[D:\ BuildAgent \ work \ e486bf18e454d0c2 \ dh.PSP.Coordinator.Api.Tests \ dh.PSP.MetadataService.Api.Tests.csproj] […]

Roslyn可以从对象实例生成源代码吗?

在Visual Studio 2015中使用Roslyn API,我可以将对象实例转换为源代码吗? 我可以创建像“.ToSourceCode()”这样的扩展方法,如下所示吗? class Foo { } class Program { static string classSourceCode = “class Foo { }”; static void Main() { var instance = new Foo(); var instanceSourceCode = instance.GetType().ToSourceCode(); System.Diagnostics.Debug.Assert(instanceSourceCode == classSourceCode); } }

‘console’在asp.net 5控制台应用程序中不包含’ReadKey’的定义

我在VS2015 CTP的ASP.NET 5控制台中创建一个简单的应用程序。 对于以下代码行 // Wait for user input Console.ReadKey(); 我收到错误‘Console’不包含’ReadKey’的定义 。 此外,我得到一个建议作为ASP.Net 5.0-Available ASP.NET Core 5.0- Not available 。 不再使用ReadKey关键字? 这个建议意味着我需要添加一些参考?