diff --git a/Source/Tools/Flax.Build/Build/DotNet/DotNetSdk.cs b/Source/Tools/Flax.Build/Build/DotNet/DotNetSdk.cs
index 240c95c16..fe49887ed 100644
--- a/Source/Tools/Flax.Build/Build/DotNet/DotNetSdk.cs
+++ b/Source/Tools/Flax.Build/Build/DotNet/DotNetSdk.cs
@@ -161,6 +161,18 @@ namespace Flax.Build
///
public readonly string RuntimeVersionName;
+ ///
+ /// Maximum supported C#-language version for the SDK.
+ ///
+ public string CSharpLanguageVersion => Version.Major switch
+ {
+ 8 => "12.0",
+ 7 => "11.0",
+ 6 => "10.0",
+ 5 => "9.0",
+ _ => "7.3",
+ };
+
///
/// Initializes a new instance of the class.
///
diff --git a/Source/Tools/Flax.Build/Projects/VisualStudio/CSSDKProjectGenerator.cs b/Source/Tools/Flax.Build/Projects/VisualStudio/CSSDKProjectGenerator.cs
index fd47e3261..c678b2521 100644
--- a/Source/Tools/Flax.Build/Projects/VisualStudio/CSSDKProjectGenerator.cs
+++ b/Source/Tools/Flax.Build/Projects/VisualStudio/CSSDKProjectGenerator.cs
@@ -28,6 +28,7 @@ namespace Flax.Build.Projects.VisualStudio
///
public override void GenerateProject(Project project, string solutionPath)
{
+ var dotnetSdk = DotNetSdk.Instance;
var csProjectFileContent = new StringBuilder();
var vsProject = (VisualStudioProject)project;
@@ -96,7 +97,7 @@ namespace Flax.Build.Projects.VisualStudio
var cacheProjectsPath = Utilities.MakePathRelativeTo(Path.Combine(Globals.Root, "Cache", "Projects"), projectDirectory);
var flaxBuildTargetsPath = !string.IsNullOrEmpty(cacheProjectsPath) ? Path.Combine(cacheProjectsPath, flaxBuildTargetsFilename) : flaxBuildTargetsFilename;
- csProjectFileContent.AppendLine(" net7.0");
+ csProjectFileContent.AppendLine($" net{dotnetSdk.Version.Major}.{dotnetSdk.Version.Minor}");
csProjectFileContent.AppendLine(" disable");
csProjectFileContent.AppendLine(string.Format(" {0}", baseConfiguration.TargetBuildOptions.ScriptingAPI.CSharpNullableReferences.ToString().ToLowerInvariant()));
csProjectFileContent.AppendLine(" false");
@@ -108,7 +109,7 @@ namespace Flax.Build.Projects.VisualStudio
csProjectFileContent.AppendLine(" false");
csProjectFileContent.AppendLine(string.Format(" {0}", project.BaseName));
csProjectFileContent.AppendLine(string.Format(" {0}.CSharp", project.BaseName));
- csProjectFileContent.AppendLine(" 11.0");
+ csProjectFileContent.AppendLine($" {dotnetSdk.CSharpLanguageVersion}");
csProjectFileContent.AppendLine(" 512");
//csProjectFileContent.AppendLine(" false"); // TODO: use it to reduce burden of framework libs