Specifying locale for string interpolation in C#6 (Roslyn CTP6)

What you have should work. It's the correct syntax. There's also a convenient method on the "System.FormattableString" abstract class which has the same effect as the suggested "INV" helper method.

using static System.FormattableString;
...
string x = Invariant($"The value is {m}");

I finally figured this out. As it turns out, the compiler feature relies on two types, System.FormattableString, and System.Runtime.CompilerServices.FormattableStringFactory. These were not available for my project - I guess they might not yet have made it into all platforms for CTP6.

This apparently made the compiler hang as described. Once I pulled the code for those two types from the CoreCLR code and added it to my project, my code works as expected.

This was figured out through code comments for the InterpolationTests. Hooray for the source being available :-)