再次记录 Visual Studio 2015 CTP 5 的一个坑

升级到 VS2015 CTP 以后,今天要改项目中的一个东西,而后就不得不把 C# 6.0 改变的语法代码中改了下(以前没改,大约200多个),首先,好比下面示例代码:正则表达式

var fullName = "\{customer.FirstName} \{customer.LastName}";

项目中有不少这样的相似代码,这些都得改掉,怎么办?手动改???算了,仍是批量修改吧,可是怎么批量替换呢,难道直接把“\ {”替换成“{”,可是“$"该怎么加呢?这个问题我思考了很久,以后还想用正则表达式替换,可是语法写不出来,哎,最后的替换方式是:手动+替换,替换“\ {”,而后手动在字符串前加“$”。ide

这里须要注意的是,千万不要批量替换“\ {”,由于替换以后,你不知道哪里用到了字符串变量,由于它会把“{”做为字符串的一部分,而没有了错误提示和智能提示,这个千万要记住,若是你这样替换,那你就死了。ui

再记录一个,以前在"{"中,写三目表达式是能够的,好比下面:spa

var fullName = "\{customer.FirstName =="xishuai" ? "cnblogs_xishuai" : customer.FirstName} \{customer.LastName}";

可是,替换成如今的语法特性,好比下面:orm

var fullName = $"{customer.FirstName =="xishuai" ? "cnblogs_xishuai" : customer.FirstName} {customer.LastName}";

上面这样写是会报错的,这个问题也困扰我好久,难道这也不支持?最后搞了很久,发现要在表达式上加“()”,以下:blog

var fullName = $"{(customer.FirstName =="xishuai" ? "cnblogs_xishuai" : customer.FirstName)} {customer.LastName}";

事情还没完,话说我改的差很少了,我自认为是把全部的语法特性的代码都改了,而后充满信心的“Build”,而后就出现了下面这样的状况:字符串

231051286106069.png

错误信息:“Metadata file 'xxxxxx.dll' could not be found” CSC,这个问题看到都头疼,而后我就搜遍了 Google,基本上的解决方式是:it

  1. Clean every project individually (Right click> Clean).ast

  2. Rebuild every project individually (Right click> Rebuild).class

  3. Rebuild the startup project.

无效,再搜,再尝试,无效,再搜,再尝试。。。

解决一个问题,若是方向错了,那你就死惨了,我如今就是这样。

最后猜怎么着?仍是代码问题,有一个类库的语法特性代码没有改掉,我滴妈呀,为何 VS2015 CTP 的错误提示没有显示出来呢,而是显示了一些乱七八糟的东西,最后发现的地方是 Output(输出窗口):

error CS1009: Unrecognized escape sequence

看到这样的错误,我就释然了,要改代码了。

相关文章
相关标签/搜索