首页 文章
  • 12 votes
     answers
     views

    Roslyn如何与MsBuild相关?

    我想知道:Roslyn究竟与MsBuild有什么关系? 我的理解是这样的 Roslyn是一个编译引擎 MsBuild主要是关于如何设置项目的一组规范 - 即基本上是.csproj,.sln文件等的定义模式 . 然后,MsBuild还附带了一个msbuild.exe - 如果我错了,请纠正我,能够实际编译项目 . 但是,假设msbuild.exe可以编译项目,那么它与Roslyn的关系...
  • 3 votes
     answers
     views

    使用Roslyn进行编译时自动解析依赖关系

    我目前正在编写一个当前通过Roslyn工作空间API加载项目的应用程序,将指定的C#文件转换为语法树,然后创建一个内存汇编形式,然后最终提取IL . 这一切都运行正常,但是当我引用所述C#文件中的任何外部库时,编译失败,因为Roslyn不知道在哪里解析这些引用 . 这是我目前正在做的简化版本: MetadataReference[] metaDatareferences = { Metad...
  • 1 votes
     answers
     views

    Roslyn AdditionalFiles

    我想开发一个Roslyn Code Analyzer,它可以以文本文件的形式访问一些静态配置 . 由于分析器无法访问本地文件系统,因此我认为读取此类外部配置的唯一方法是通过Context Option和AdditionalFiles . 我知道处理这个问题的这个例子: https://github.com/dotnet/roslyn/blob/master/docs/analyzers/Using...
  • 1 votes
     answers
     views

    Roslyn.Compilers.CSharp.Syntax.Identifier在哪里定义?

    我正在写一个Roslyn代码修复程序,我想替换一个标识符标记 . 要做到这一点,我找到令牌,然后创建一个新令牌 var newToken = SyntaxFactory.Token(identifierToken.LeadingTrivia, SyntaxKind.IdentifierToken, newName, newName, identifierToken.TrailingTrivia);...
  • 2 votes
     answers
     views

    Roslyn Analyzer操作应该如何处理异步代码?

    我有一个Roslyn分析器,我最近更新了使用CSharp.Workspaces的2.3版本 . 我发现当我构建时,我收到如下警告: Analyzer尝试注册“异步”操作,但不支持此操作 . 我添加的一些操作是异步的,因为它们从Roslyn API调用异步方法,如下面的假设示例所示 . public override void Initialize(AnalysisContext context...
  • 0 votes
     answers
     views

    使用Roslyn创建诊断分析器时丢失包

    澄清:我正在使用Visual Studio 2013 Ultimate,Update 2 我正在尝试使用Roslyn创建一个诊断分析器 . 诊断分析器的示例代码(位于here以这种方式声明这样的分析器: [DiagnosticAnalyzer(LanguageNames.CSharp)] internal class DiagnosticAnalyzer : Microsoft.CodeAnaly...
  • 69 votes
     answers
     views

    如何使我的代码诊断语法节点操作适用于已关闭的文件?

    我正在使用Roslyn(在VS2015 Preview中)构建一组代码诊断 . 理想情况下,我希望他们产生的任何错误都可以作为持久性错误,就像我违反了正常的语言规则一样 . 有很多选择,但我很难让他们中的任何一个一致地工作 . 我已经设法实现了一个基本的语法节点动作,即一个注册的动作 context.RegisterSyntaxNodeAction(AnalyzeSyntaxNode, Synta...
  • 2 votes
     answers
     views

    如何通过roslyn找到变量的值

    我正在使用Roslyn制作诊断分析器 . 我想在正在分析的代码中获取变量的值 . 比如在此代码中获取变量 num 的值: int[] a = { 1, 2, 3 }; int[] num = a; Person person1 = new Person("bob", num); 我已经尝试通过创建一个新的编译单元来动态编译代码, SyntaxTree compilationU...
  • 0 votes
     answers
     views

    我能够为我的扩展程序获取Roslyn分析器,但未能获得相同诊断程序的codeFix提供程序

    我创建了一个引用Roslyn分析器和代码修复库的vsix项目 . 我能够为我的扩展程序获取分析器,但无法获得相同诊断程序的代码修复提供程序 . 分析器 namespace CSharpDiagnostics { [DiagnosticAnalyzer(LanguageNames.CSharp)] public class AsyncMethodNameAnalyzer : Synt...
  • 1 votes
     answers
     views

    如果有的话,通过诊断传递序列化数据的危险是什么?

    通过创建诊断,您可以使用自定义数据传入 Dictionary<string, string> . 之后,您可以在读取诊断的任何内容中使用它来提供上下文信息 . 可用的典型方案是在分析器和代码修复之间 . 这种传递数据的方法有多可靠?是否应该记住哪些特殊注意事项? 我记得几个月前关于这个问题的讨论,当时提出关于可串行化的问题是不提供这种功能的一个原因 . 我想到的其他事情是竞争条件的可...
  • -1 votes
     answers
     views

    如何在roslyn中将字段声明转换为单独的自动属性?

    我正在使用.NET编译器平台(Roslyn)编写带有代码修复的代码分析器 . 我需要将所有(非密封的)公共字段转换为单独的自动属性,因为我知道FieldDeclarationSyntax可以在一行中有多个字段声明,基于下面的Stackoverflow问题中的代码示例 . 这里讨论了多场声明的事实:How to get a Roslyn FieldSymbol from a FieldDeclara...
  • 4 votes
     answers
     views

    在Roslyn Fixer中获取样式设置

    此刻我正在编写带有修复程序的Roslyn分析器,该修复程序检查构造函数参数是否检查为null . 如果没有,修复者将添加该检查 . 所以,基本上是代码 public Foo(string param1) { } 它应该产生 public Foo(string param1) { if (param1 == null) throw new ArumentNul...
  • 27 votes
     answers
     views

    在CodeDomProvider(rosyln)中使用C#6功能

    CodeDomProvider objCodeCompiler = CodeDomProvider.CreateProvider( "CSharp" ); CompilerParameters objCompilerParameters = new CompilerParameters(); ... CompilerResults objCompileResults = ...
  • 0 votes
     answers
     views

    Roslyn编译器在错误的bin文件夹中查找vbc.exe

    我真的很喜欢VS2015中新的VB14语言功能(比如? . 符号和字符串插值) . 在我们的WinForms(.Net 4.5)应用程序中,我使用encodeom编译器动态运行动态报告代码 . 不幸的是,这并不会自动支持新的语言功能 . Imports System.CodeDom.Compiler Namespace MAF.DB.BusinessObject.ReportService ...
  • 0 votes
     answers
     views

    在Go Daddy上托管asp.net网站时出错

    我的网站在本地运行正常但是当我在Go Daddy上托管它时出现错误: 无法执行程序 . 正在执行的命令是G:\ PleskVhosts \ website \ httpdocs \ bin \ roslyn \ csc.exe / shared / keepalive:10 / noconfig / fullpaths @C:\ Windows \ Microsoft.NET \ Framewo...
  • 44 votes
     answers
     views

    无法删除\ bin \ roslyn \ VBCSCompiler.exe - 访问被拒绝

    我正面临一个来自roslyn编译器的奇怪问题 . 有时当我构建解决方案时,我在错误列表中面临一个奇怪的问题,这不会让我构建解决方案 . 这是错误: 严重级代码说明项目文件行抑制状态错误无法将文件“D:\ Sealogical New Website \ SealogicalWebsite \ packages \ Microsoft.Net.Compilers.1.0.0 \ tools \ c...
  • 3 votes
     answers
     views

    发布:找不到路径的一部分... \ obj \ DEV \ AspnetCompileMerge \ Source \ bin \ roslyn \ csc.exe'

    我最近将新的.NET编译器NuGet包(Microsoft.CodeDom.Providers.DotNetCompilerPlatfor)添加到现有的旧版MVC.NET网站 . 现在,当尝试发布网站时,我得到以下异常: 找不到路径的一部分... \ obj \ DEV \ AspnetCompileMerge \ Source \ bin \ roslyn \ csc.exe' 我已经尝试了...
  • 6 votes
     answers
     views

    Azure Web Deploy“无法找到路径'D:\home\site\wwwroot\bin\roslyn\csc.exe'的一部分 . ”

    我一直在浏览网页几个小时,现在正在寻找我的问题的答案 . 我正在尝试使用VS2017在Azure Web App Service上部署Web API . 一切都在本地运行时构建和工作正常但是一旦部署在Azure上(通过VS2017)我收到此错误: D:\ home \ site \ wwwroot \ bin \ roslyn \ csc.exe 我的项目是ASP.NET Web应用程序(使用...
  • 1 votes
     answers
     views

    VS2017尝试构建ASP.NET MVC 5应用程序时出错 . Roslyn \ bin \ csc.exe被拒绝

    这似乎是一个已知问题,我已经按照几个论坛的建议将我的 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 降级为1.0.5而我的 Microsoft.Net.Compilers 降级为2.1.0 . 这使问题解决了几天,但现在,它已经无处可去 . 我尝试构建项目时收到以下错误: D:\ VS 17 Projects \ ReminderNotes...
  • 117 votes
     answers
     views

    Roslyn语法节点是否重用?

    我一直在看Roslyn CTP,虽然它解决了与Expression tree API类似的问题,但两者都是不可改变的,但Roslyn以一种完全不同的方式这样做: Expression 节点没有对父节点的引用,使用 ExpressionVisitor 进行修改,这就是为什么可以重用大部件的原因 . 另一方面,Roslyn的 SyntaxNode 引用了它的父节点,因此所有节点实际上都成为一个无法...
  • 86 votes
     answers
     views

    在Roslyn中使用System.Dynamic

    我修改了昨天发布的新版Roslyn附带的示例,以使用动态和ExpandoObject,但我收到编译器错误,我不知道如何修复 . 错误是: (7,21):错误CS0656:缺少编译器所需的成员'Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create' 你能否在新的编译器中使用动态?我怎样才能解决这个问题?以下是我更新的示例: [TestM...
  • 0 votes
     answers
     views

    Roslyn CodeFixProvider使用具有值的参数添加属性

    我正在为分析器创建一个CodeFixProvider,它检测类声明中是否缺少 MessagePackObject 属性 . 在旁边,我的属性需要有一个参数 keyAsPropertyName ,其值为 true [MessagePackObject(keyAsPropertyName:true)] 我已经完成了添加没有参数的属性(我的解决方法) private async Task<Sol...
  • 26 votes
     answers
     views

    如何使用新语法树部分更新编译?

    我有以下编译: Solution solutionToAnalyze = workspace.OpenSolutionAsync(pathToSolution).Result; var projects = solutionToAnalyze.Projects; Compilation compilation = projects.First().GetCompilationAsync().Res...
  • -1 votes
     answers
     views

    编译C#Roslyn

    我正在使用Roslyn尝试在运行时编译和运行代码 . 我已经看到了一些我在网上找到的代码,并且有些工作 . public Type EvalTableScript(string Script, CRMMobileFramework.EnbuUtils EnbuUtils, CRMMobileFramework.Includes.DBAdapter dbConn) { var syntaxT...
  • 94 votes
     answers
     views

    Roslyn无法编译代码

    将项目从VS2013迁移到VS2015之后,项目不再构建 . 以下LINQ语句中发生编译错误: static void Main(string[] args) { decimal a, b; IEnumerable<dynamic> array = new string[] { "10", "20", "30"...
  • 7 votes
     answers
     views

    可靠地将类型符号(ITypeSymbol)与Roslyn进行比较

    我试图在以下情况下可靠地比较 ITypeSymbol 最简单和最直接的两种情况(我在一个更大的项目中遇到了这些问题,并试图尽可能地简化它): 我有这个SyntaxTree的CSharpCompilation: namespace MyAssembly { public class Foo { public Foo(Foo x) { } ...
  • 2 votes
     answers
     views

    Roslyn - 如何用多个节点替换多个节点?

    Background: 使用Roslyn和C#,我试图扩展自动实现的属性,以便访问器主体可以通过以后的处理注入代码 . 我使用StackExchange.Precompilation作为编译器钩子,因此这些语法转换发生在构建管道中,而不是作为分析器或重构的一部分 . 我想转此: [SpecialAttribute] int AutoImplemented { get; set; } 进入这个: ...
  • 0 votes
     answers
     views

    使用Roslyn编译到模块

    我需要将任何C#或VB.NET项目编译为.NetModule . 我有以下示例代码发出DLL,需要一些帮助来修改以下从.csproj获取.NetModules 提前致谢 . // Required Microsoft.CodeAnalysis 1.3.0 class Program { static void Main(string[] args) ...
  • 1 votes
     answers
     views

    Roslyn FindReferencesAsync返回相同类型的不同值

    我有一个测试解决方案,其代码如下: public class Class1 { public string Foo { get; set; } } public class Business { public void DoStuff() { var c1 = new Class1(); } } 如果我通过这样的显式方式找到类型: var doc...
  • 0 votes
     answers
     views

    使用VB / C#Diagnostic Analyzer / CodeFix / AutoUpdate多个.vsix会导致性能问题吗?

    我正在实施一个系统,该系统将实现代码质量作为内部质量措施的一部分 . 我用两种可能的实现方式构建了系统,如下所示: Implementation 1: (Already implemented) AutoUpdate扩展(存根) C#CodeQualityPlugin(Roslyn C#Diagnostic Analyzer&Code Fix) VB CodeQualityPlugin...

热门问题