diff --git a/src/dotnet-svcutil/lib/src/Bootstrapper/SvcutilBootstrapper.cs b/src/dotnet-svcutil/lib/src/Bootstrapper/SvcutilBootstrapper.cs index 162e7ccb610..321d15f8667 100644 --- a/src/dotnet-svcutil/lib/src/Bootstrapper/SvcutilBootstrapper.cs +++ b/src/dotnet-svcutil/lib/src/Bootstrapper/SvcutilBootstrapper.cs @@ -151,6 +151,9 @@ internal async Task GenerateProjectAsync(bool keepBootstrapperDir, ILogger logge // Don't treat warnings as errors so the bootstrapper will succeed as often as possible. this.MSBuildProj.ClearWarningsAsErrors(); + // Nullable requires newer lang versions. + this.MSBuildProj.SetLangVersion(); + await this.MSBuildProj.SaveAsync(logger, cancellationToken).ConfigureAwait(false); } diff --git a/src/dotnet-svcutil/lib/src/Shared/MSBuildProj.cs b/src/dotnet-svcutil/lib/src/Shared/MSBuildProj.cs index 522971d5c25..2ee12dfa754 100644 --- a/src/dotnet-svcutil/lib/src/Shared/MSBuildProj.cs +++ b/src/dotnet-svcutil/lib/src/Shared/MSBuildProj.cs @@ -521,6 +521,12 @@ public void ClearWarningsAsErrors() SetPropertyValue("WarningsAsErrors", string.Empty); } + public void SetLangVersion() + { + // netstandard2.0 will throw an error saying default 7.3 lang version is too low, requiring 8 or higher. + SetPropertyValue("LangVersion", "latest"); + } + private void UpdateTargetFramework(string targetFramework) { if (_targetFramework != targetFramework && !string.IsNullOrWhiteSpace(targetFramework))