再次记录 Visual Studio 2015 CTP 5 的一个坑
2015-01-23 11:11
190 查看
接上一篇:升级 Visual Studio 2015 CTP 5 的坑、坑、坑
升级到 VS2015 CTP 之后,今天要改项目中的一个东西,然后就不得不把 C# 6.0 改变的语法代码中改了下(之前没改,大约200多个),首先,比如下面示例代码:
项目中有很多这样的类似代码,这些都得改掉,怎么办?手动改???算了,还是批量修改吧,但是怎么批量替换呢,难道直接把“ {”替换成“{”,但是“$"该怎么加呢?这个问题我思考了好久,之后还想用正则表达式替换,但是语法写不出来,哎,最后的替换方式是:手动+替换,替换“ {”,然后手动在字符串前加“$”。
这里需要注意的是,千万不要批量替换“ {”,因为替换之后,你不知道哪里用到了字符串变量,因为它会把“{”作为字符串的一部分,而没有了错误提示和智能提示,这个千万要记住,如果你这样替换,那你就死了。
再记录一个,之前在"{"中,写三目表达式是可以的,比如下面:
但是,替换成现在的语法特性,比如下面:
上面这样写是会报错的,这个问题也困扰我很久,难道这也不支持?最后搞了好久,发现要在表达式上加“()”,如下:
事情还没完,话说我改的差不多了,我自认为是把所有的语法特性的代码都改了,然后充满信心的“Build”,然后就出现了下面这样的情况:
错误信息:“Metadata file 'xxxxxx.dll' could not be found” CSC,这个问题看到都头疼,然后我就搜遍了 Google,基本上的解决方式是:
Clean every project individually (Right click> Clean).
Rebuild every project individually (Right click> Rebuild).
Rebuild the startup project.
无效,再搜,再尝试,无效,再搜,再尝试。。。
解决一个问题,如果方向错了,那你就死惨了,我现在就是这样。
最后猜怎么着?还是代码问题,有一个类库的语法特性代码没有改掉,我滴妈呀,为什么 VS2015 CTP 的错误提示没有显示出来呢,而是显示了一些乱七八糟的东西,最后发现的地方是 Output(输出窗口):
看到这样的错误,我就释然了,要改代码了。
升级到 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,基本上的解决方式是:
Clean every project individually (Right click> Clean).
Rebuild every project individually (Right click> Rebuild).
Rebuild the startup project.
无效,再搜,再尝试,无效,再搜,再尝试。。。
解决一个问题,如果方向错了,那你就死惨了,我现在就是这样。
最后猜怎么着?还是代码问题,有一个类库的语法特性代码没有改掉,我滴妈呀,为什么 VS2015 CTP 的错误提示没有显示出来呢,而是显示了一些乱七八糟的东西,最后发现的地方是 Output(输出窗口):
error CS1009: Unrecognized escape sequence
看到这样的错误,我就释然了,要改代码了。
相关文章推荐
- Visual Studio 2015 CTP6 发布
- 《ASP.NET5》Windows 7下Visual Studio 2015安装记录
- 微软Visual Studio 2015 CTP1出来了赶快体验了及对它的期望
- 2015,记录成长,给自己一个愿景
- 又发现一个visual studio 2015的坑啊。
- Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)
- 升级 Visual Studio 2015 CTP 5 的坑、坑、坑
- Visual Studio 2015里 C++ 整形变量的默认值是0,不是一个负数
- [.NET]Visual Studio 2003的一个bug
- 又是一个好消息,MaxtoCode 普及版 强度再次上调
- 自己写的一个JSP小游戏21点,记录一下
- ado多次按条件使用一个记录集中的数据的方法
- 安裝Visual Studio 2005 July CTP 中的Visio辦法
- Visual Studio 2005 Express October 2004 CTP完整版本的下载
- 一个记录程序运行时间表的控件
- 请教一个问题,Log4Net记录日志到Oracle显示中文乱码如何解决?
- 这个问题让我疯掉!用oledbcommand执行一个插入一条记录的程序,到现在也没有解决!
- 一个多线程的日志记录DLL
- 在oracle一个有60万记录的表中删除几十条记录怎么用了很长时间?
- Duwamish示例中异常记录的一个小bug