• 再次记录 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
    

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

  • 相关阅读:
    02 .NET CORE 2.2 使用OCELOT -- 路由
    01 .NET CORE 2.2 使用OCELOT -- 简单使用
    Winows上简单配置使用kafka(.net使用)
    【C#】 获取计算机的硬件信息
    使用NPOI进行Excel操作
    Xamarin 开发Android应用简易教程(1)
    【日常笔记】字符串加密
    【日常笔记】生成验证码图片
    [Winfrom] 使用一个启动快捷方式,打开2个不同的窗体并且共用一个缓存空间
    windows获取物理mac地址
  • 原文地址:https://www.cnblogs.com/xishuai/p/vs2015-ctp-c6-keng.html
Copyright © 2020-2023  润新知