diff --git a/Source/Tools/Flax.Build/Projects/VisualStudio/VCProjectGenerator.cs b/Source/Tools/Flax.Build/Projects/VisualStudio/VCProjectGenerator.cs
index 1a52274a7..290d194cf 100644
--- a/Source/Tools/Flax.Build/Projects/VisualStudio/VCProjectGenerator.cs
+++ b/Source/Tools/Flax.Build/Projects/VisualStudio/VCProjectGenerator.cs
@@ -115,6 +115,7 @@ namespace Flax.Build.Projects.VisualStudio
if (Version >= VisualStudioVersion.VisualStudio2022)
vcProjectFileContent.AppendLine(" false");
vcProjectFileContent.AppendLine(" ./");
+ vcProjectFileContent.AppendLine(" ./");
vcProjectFileContent.AppendLine(" ");
// Default properties
@@ -377,9 +378,13 @@ namespace Flax.Build.Projects.VisualStudio
vcUserFileContent.AppendLine("");
- if (platforms.Any(x => x.Target == TargetPlatform.Linux))
+ if (platforms.Any(x => x.Target == TargetPlatform.Linux || x.Target == TargetPlatform.Mac))
{
- // Override MSBuild .targets file with one that runs NMake commands (workaround for Rider on Linux)
+ var editorPath = Utilities.NormalizePath(Path.Combine(Globals.EngineRoot, Platform.GetEditorBinaryDirectory(), "$(Configuration.Split('.')[2])", $"FlaxEditor{Utilities.GetPlatformExecutableExt()}")).Replace('\\', '/');
+ var debuggerProjectPath = Globals.Project.Name == "Flax" ? "" : Globals.Project.ProjectFolderPath;
+ var debuggerWorkingDirectory = Globals.Project.ProjectFolderPath;
+
+ // Override MSBuild .targets file with one that runs NMake commands (workaround for Rider not finding "Microsoft.Cpp.Default.props" file)
var cppTargetsFileContent = new StringBuilder();
cppTargetsFileContent.AppendLine("");
cppTargetsFileContent.AppendLine(" ");
@@ -395,6 +400,12 @@ namespace Flax.Build.Projects.VisualStudio
cppTargetsFileContent.AppendLine(" ");
cppTargetsFileContent.AppendLine(" $(RootNamespace)$(Configuration.Split('.')[0])");
cppTargetsFileContent.AppendLine(" $(OutDir)/$(TargetName)$(TargetExt)");
+ if (!string.IsNullOrEmpty(debuggerProjectPath))
+ cppTargetsFileContent.AppendLine(string.Format(" -project \"{0}\"", debuggerProjectPath));
+ else
+ cppTargetsFileContent.AppendLine(" ");
+ cppTargetsFileContent.AppendLine(string.Format(" {0}", editorPath));
+ cppTargetsFileContent.AppendLine(string.Format(" {0}", debuggerWorkingDirectory));
cppTargetsFileContent.AppendLine(" ");
cppTargetsFileContent.AppendLine("");
diff --git a/Source/Tools/Flax.Build/Projects/VisualStudio/VisualStudioProjectGenerator.cs b/Source/Tools/Flax.Build/Projects/VisualStudio/VisualStudioProjectGenerator.cs
index 34dc3f380..be9f1235f 100644
--- a/Source/Tools/Flax.Build/Projects/VisualStudio/VisualStudioProjectGenerator.cs
+++ b/Source/Tools/Flax.Build/Projects/VisualStudio/VisualStudioProjectGenerator.cs
@@ -633,6 +633,7 @@ namespace Flax.Build.Projects.VisualStudio
var configuration = "$(FlaxConfiguration)";
var editorPath = Utilities.NormalizePath(Path.Combine(Globals.EngineRoot, Platform.GetEditorBinaryDirectory(), configuration, $"FlaxEditor{Utilities.GetPlatformExecutableExt()}")).Replace('\\', '/');
var workspacePath = Utilities.NormalizePath(solutionDirectory).Replace('\\', '/');
+ var args = Globals.Project.Name == "Flax" ? "" : $"-project \\\"{workspacePath}\\\"";
foreach (var project in projects)
{
if (project.Type == TargetType.DotNetCore)
@@ -645,7 +646,7 @@ namespace Flax.Build.Projects.VisualStudio
profile.AppendLine(" \"commandName\": \"Executable\",");
profile.AppendLine($" \"workingDirectory\": \"{workspacePath}\",");
profile.AppendLine($" \"executablePath\": \"{editorPath}\",");
- profile.AppendLine($" \"commandLineArgs\": \"-project \\\"{workspacePath}\\\"\",");
+ profile.AppendLine($" \"commandLineArgs\": \"{args}\",");
profile.AppendLine(" \"nativeDebugging\": false");
profile.Append(" }");
if (profiles.ContainsKey(path))