【问题标题】:error CS1002: ; expected and error CS1520: Method must have a return type错误 CS1002: ;预期和错误 CS1520:方法必须有返回类型
【发布时间】:2016-08-05 13:43:22
【问题描述】:

我的项目中有一个 .cs 文件,其内容如下:

namespace Xyz.NotificationServer.Common.Helper.Configuration
{
    public static class ApplicationConfiguration
    {

        public static string Domain => "Domain".GetSettingAsString();

        public static string LdapPath => "LDAPPath".GetSettingAsString();
        public static string Referer => "Referer".GetSettingAsString();

        public static string ReportExecutionService => "ReportExecutionService".GetSettingAsString();

        public static string OAuthServer => "OAuthServer".GetSettingAsString();

        public static string DomainName => "DomainName".GetSettingAsString();

        public static string HostIpAddress => "HostIpAddress".GetSettingAsString();
        public static string Authority => "Authority".GetSettingAsString();
        public static string ClientId => "ClientId".GetSettingAsString();
        public static string ClientSecret => "ClientSecret".GetSettingAsString();
        public static string RequiredScopes => "RequiredScopes".GetSettingAsString();

        public static string To => "to".GetSettingAsString();

        /*-------------------------------Code start to read configuration string------------------------------------------*/
        public static string ConnectionString => "Default".GetConfigSettingAsString();
        /*-------------------------------Code end to read configuration string------------------------------------------*/


    }
}

此项目的目标 .net 框架是 4.1.6。因此,当我尝试使用 Visual Studio 构建这个项目时,它不会显示任何错误,但是当我尝试从 Jenkins 构建这个项目时,它会在每一行显示错误 CS1002 和 CS1520。

我的机器上安装了 .net framework 4.1.6。 在 Jenkins 中,MSBUILD.EXE 的位置指向以下路径:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe

那么问题是什么?

【问题讨论】:

  • 这是一个完全标准的“不想为 VS 许可证付费”的问题。您使用的是错误版本的 MSBuild,它不是 Roslyn 驱动的,因此没有 C# v6 功能。保留 c:\windows\microsoft.net 中的副本只是为了避免旧的构建服务器崩溃。您必须使用存储在 c:\program 文件中的 MSBuild 版本。
  • 这个问题怎么样?以下任何答案是否解决了您的问题,如果是,您可以接受它作为答案,这样它可以帮助遇到同样问题的其他社区成员,我们可以存档这个帖子,谢谢。

标签: c# jenkins msbuild


【解决方案1】:

这可以通过安装 nuget 包来解决: Microsoft.Net.Compilers

将该包添加到任何使用 c# 6 的项目中,然后尝试在 Jenkins 中重新构建。

【讨论】:

    【解决方案2】:

    这可能是由旧版本的 MSBuild 引起的。如果你安装了 Visual Studio 2019,那么你应该有更新的 MSBuild,否则你应该将它安装在你的构建服务器上。

    您可以使用 vswhere 找到 MSBuild:运行 vswhere -find msbuild 将为您提供位置,您可以指定要查找的版本。

    如果您安装了 Visual Studio,则默认位置是 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\msbuild.exe (将 2019 替换为您的 Visual Studio 版本,并根据需要将 Community 替换为您的版本)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-27
      • 2018-03-08
      • 2014-10-27
      • 2021-06-08
      • 2015-05-16
      相关资源
      最近更新 更多