none
msbuild生成解决方案时报错 RRS feed

  • 问题

  • DLL\Publics\Publics.cs(97,48): error CS1056: 意外的字符“$”

    如题,用msbuild.exe工具时,出现如上的错误提示。结果在代码里发现使用了语法糖$( $"SELECT SUM(CONVERT(INT,b)) FROM dbo.xxx WHERE a= {year} "),是不是msbuild不支持vs新语法糖呢?有什么好的解决办法?谢谢

    2017年7月5日 3:38

全部回复

  • 你好,

    $内插字符串 是c# 6.0的新特性。需要msbuild 14.0 以上版本才能支持。你需要使用vs2015 或者vs2017 来build 你的应用程序。

    另外你的代码也多了一个$字符。应该是这样。

    string sql = $"SELECT SUM(CONVERT(INT,b)) FROM dbo.xxx WHERE a= {year}";

    关于内插字符串的更多内容,请参考:

    https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/interpolated-strings

    Best regards,

    Cole Wu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.


    2017年7月5日 7:20
    版主
  • 你说的方法还是要打开vs才能编译吧?如果不打开vs可以做到吗?
    2017年7月5日 8:29
  • 你好,

    你可以使用msbuild command line 来build 你的应用程序。msbuild 14.0的路经是:

    C:\Program Files (x86)\MSBuild\14.0\Bin\MsBuild.exe

    Best regards,

    Cole Wu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.


    2017年7月5日 8:34
    版主
  • 试了下,可以 谢谢大神!!

    能请教下吗? 是不是每个版本的vs都有 一个独立的msbuild生成工具?

    2017年7月5日 9:25
  • 试了下,可以 谢谢大神!!

    能请教下吗? 是不是每个版本的vs都有 一个独立的msbuild生成工具? 然后他们之间的关系有怎样的呢?

    2017年7月5日 9:28
  • 一般是.NET Framework 4.x,其伴随着一个.NET Framework 4.x Dev Package

    前者是运行库,后者是Visual Studio的开发工具包,您可以在任意的Visual Studio项目中,点项目属性,在Build Target看到有.NET 2.0,3.0,3.5,4.X , 点更多,弹开一个网页,在打开的网页中可以看到这个关系,并附带有下载地址。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2017年7月6日 0:21