我有一个在Visual Studio 2015中运行时构建良好的解决方案,但是当我从命令行运行时,我遇到了错误
错误CS1056:此行上出现意外字符'$'
var CutOffTextFragment = deadLineTime.Deadline.Minute == 0 ? $"{deadLineTime.Deadline:htt}" : $"{deadLineTime.Deadline:h:mmtt}"
deadLineTime.Deadline是一个DateTime对象,代码将返回XAM/PM或X:XXAM/PM
我认为这是因为构建脚本没有使用C#6.目前这个脚本不能改为使用c#6
如果是这种情况,任何人都可以帮我折旧代码,以便它适用于C#5
该功能是针对C#6的语法糖,尝试安装最新版本的框架4.6.2 https://www.microsoft.com/en-us/download/details.aspx?id=53345
然后转到Project属性并更改Target框架上的Application选项以指向最新的.您无需更改代码即可使用string.Format方法替换字符串插值以进行修复.
如果您仍然收到此错误,是因为,运行您的构建的编译器不是C#的最新版本,请尝试从Nuget添加Microsoft.Net.Compilers并再次编译,这应解决该问题.如果您想避免安装此软件包,请尝试打开.csproj并查看应该指向版本12的ToolsVersion,然后将其更改为14,但请确保已安装最新版本的MSBuild从https://www.microsoft.com/en-us/download/details.aspx?id=48159 或转到C:\ Program Files(x86)\ MSBuild\14.0\Bin,你应该有这个文件夹csc.exe编译器.如果即使这样也无法解决问题,请尝试按照以下步骤操作:https://msdn.microsoft.com/en-us/library/bb383985.aspx.根据我的经验,刚刚从Nuget获得包解决了这个问题.希望这可以帮助