【发布时间】: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 版本。
-
这个问题怎么样?以下任何答案是否解决了您的问题,如果是,您可以接受它作为答案,这样它可以帮助遇到同样问题的其他社区成员,我们可以存档这个帖子,谢谢。