Tag: roslyn

如何从命令行运行Roslyn而不是csc.exe?

安装VS 2015后,从命令行运行csc.exe会导致此消息显示到控制台: 此编译器作为Microsoft(R).NET Framework的一部分提供,但仅支持C#5以外的语言版本,而C#5不再是最新版本。 对于支持较新版本的C#编程语言的编译器,请参阅http://go.microsoft.com/fwlink/?LinkID=533240 该链接重定向到GitHub上的Roslyn存储库。 那么,是从命令行运行“支持更新版本的编译器”(Roslyn)的方法吗?

在CodeDomProvider(rosyln)中使用C#6function

CodeDomProvider objCodeCompiler = CodeDomProvider.CreateProvider( “CSharp” ); CompilerParameters objCompilerParameters = new CompilerParameters(); … CompilerResults objCompileResults = objCodeCompiler.CompileAssemblyFromFile( objCompilerParameters, files.ToArray() ); 当我编译我的文件时,我得到: FileFunctions.cs(347):错误:意外字符’$’ 有没有人知道如何使用CodeDom编译进行字符串插值? 我找到了这个链接: 如何使用CSharpCodeProvider定位.net 4.5? 所以我尝试过: var providerOptions = new Dictionary(); providerOptions.Add( “CompilerVersion”, “v4.0” ); // Instantiate the compiler. CodeDomProvider objCodeCompiler = CodeDomProvider.CreateProvider( “CSharp”, providerOptions ); 但我仍然得到同样的错误。 我还将目标框架更新为.NET Framework 4.6。 注意:我不能指定“v4.5”或“v4.6”或者我会得到: ************** Exception Text ************** […]

什么是“C#编译器作为服务”的状态

回到2008年的PDC,在Anders Hejlsberg的C#期货谈话中,他谈到了重写C#编译器并提供“编译器即服务”,当然我在他们针对C#4.0时间框架时给人的印象。 … 那么,有谁知道这是什么状态? 它似乎没有在CTP中存在,除了链接到2008 PDC会话video(大约一个小时)之外,几乎没有关于WEB的信息。 这个倡议变暗了吗?

我可以使用Roslyn进行编译时代码重写吗?

比如我有 class Foo: INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public int Bar {get;set;} } 我可以在编译时获取Foo类AST并重写Bar public string Bar { get { return this.bar; } set { if (value != this.bar) { this.phoneNumberValue = value; PropertyChanged(this, new PropertyChangedEventArgs(“Bar”)); } } } 。

可能是Visual Studio 2015中的C#编译器错误

我认为这是一个编译错误。 使用VS 2015编译时,以下控制台应用程序编译并执行完美: namespace ConsoleApplication1 { class Program { static void Main(string[] args) { var x = MyStruct.Empty; } public struct MyStruct { public static readonly MyStruct Empty = new MyStruct(); } } } 但现在它变得很奇怪:这段代码编译,但是在执行时会抛出一个TypeLoadException 。 namespace ConsoleApplication1 { class Program { static void Main(string[] args) { var x = MyStruct.Empty; } public struct MyStruct […]

使用Roslyn查找对方法的所有引用

我正在寻找扫描一组.cs文件,以查看哪些调用Nullable的Value属性(查找所有引用)。 例如,这将匹配: class Program { static void Main() { int? nullable = 123; int value = nullable.Value; } } 我发现了Roslyn并查看了一些样本,但其中许多已经过时且API非常庞大。 我该怎么做呢? 解析语法树后我陷入了困境。 这是我到目前为止: public static void Analyze(string sourceCode) { var tree = CSharpSyntaxTree.ParseText(sourceCode); tree./* ??? What goes here? */ }