zoukankan      html  css  js  c++  java
  • 再次记录 Visual Studio 2015 CTP 5 的一个坑

    接上一篇:升级 Visual Studio 2015 CTP 5 的坑、坑、坑

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

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

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

    这里需要注意的是,千万不要批量替换“ {”,因为替换之后,你不知道哪里用到了字符串变量,因为它会把“{”作为字符串的一部分,而没有了错误提示和智能提示,这个千万要记住,如果你这样替换,那你就死了。

    再记录一个,之前在"{"中,写三目表达式是可以的,比如下面:

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

    但是,替换成现在的语法特性,比如下面:

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

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

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

    事情还没完,话说我改的差不多了,我自认为是把所有的语法特性的代码都改了,然后充满信心的“Build”,然后就出现了下面这样的情况:

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

    1. Clean every project individually (Right click> Clean).
    2. Rebuild every project individually (Right click> Rebuild).
    3. Rebuild the startup project.

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

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

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

    error CS1009: Unrecognized escape sequence
    

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

  • 相关阅读:
    将ASCII字符串转换为UNICODE字符串
    GetLastError()返回值大全
    C++构造函数的调用
    DOM – 7.动态创建DOM + 8.innerText innerHTML value
    DOM
    DOM – 4.doucument属性
    用jquery操作xml文件
    請推薦有關網路的書
    Linux命令全称
    轻松架设时时监控工具Cacti
  • 原文地址:https://www.cnblogs.com/xishuai/p/vs2015-ctp-c6-keng.html
Copyright © 2011-2022 走看看