切换到 Visual Studio 2015 后,我们注意到对在 Roslyn 中将 lambda 编译为 MSIL 的方式所做的一些更改(在 this threadon GitHub 中进行了描述)在某些情况下会导致运行时失败。

由于 Roslyn 显然是 .NET 的 future ,我们想切换到这项技术,但似乎所有在生产中运行的遗留代码(并且我们有相当程度的信心它可以正常工作)现在很容易新的运行时故障。这些是也受此问题影响的几个库(如 Moq, for example )。

我们已经为 its issues 跳过了到 RyuJIT 的升级,但我相信 Visual Studio 2015 与 Roslyn 高度集成,我认为我们不能简单地手动替换 csc.exe(但那是 a different question )。

那么,是否有 Roslyn 中的重大更改的编译列表,我们可以引用以查看我们可以期待什么?

最佳答案

(更新)

感谢@NealGafter 提供链接。当前可以在此处找到重大更改列表:

  • Roslyn Github issue 7278: List of breaking changes in Roslyn


  • 似乎这里应该有一些文档: Roslyn Compiler Specification (roslyn/docs/compilers on GitHub) 。根据描述:



    描述有关 lambdas 的 CodeGen 更改的文档(因为这是我最初的问题)位于 roslyn/docs/compilers/CSharp/CodeGen Differences :

    关于visual-studio-2015 - Roslyn 中的重大更改列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33954768/

    10-16 09:00