VS: Fix paths in multi-target SDK-style projects

Set the `AppendTargetFrameworkToOutputPath` property to `false` only for
single target SDK-style projects.  This prevents outputs from being
overwritten during the build.  This revises commit 7671d71299 (VS: Fix
target output paths in SDK-style projects, 2022-09-23, v3.25.0-rc1~82^2).

Fixes: #24094
Issue: #23989
This commit is contained in:
Sebastian Maisch 2022-10-27 03:29:37 -04:00 committed by Brad King
parent 33d610a076
commit d2d1be0671

View File

@ -903,7 +903,6 @@ void cmVisualStudio10TargetGenerator::WriteSdkStyleProjectFile(
// of the IDE. // of the IDE.
e1.Element("VCProjectUpgraderObjectName", "NoUpgrade"); e1.Element("VCProjectUpgraderObjectName", "NoUpgrade");
e1.Element("ManagedAssembly", "true"); e1.Element("ManagedAssembly", "true");
e1.Element("AppendTargetFrameworkToOutputPath", "false");
cmValue targetFramework = cmValue targetFramework =
this->GeneratorTarget->GetProperty("DOTNET_TARGET_FRAMEWORK"); this->GeneratorTarget->GetProperty("DOTNET_TARGET_FRAMEWORK");
@ -912,9 +911,11 @@ void cmVisualStudio10TargetGenerator::WriteSdkStyleProjectFile(
e1.Element("TargetFrameworks", *targetFramework); e1.Element("TargetFrameworks", *targetFramework);
} else { } else {
e1.Element("TargetFramework", *targetFramework); e1.Element("TargetFramework", *targetFramework);
e1.Element("AppendTargetFrameworkToOutputPath", "false");
} }
} else { } else {
e1.Element("TargetFramework", "net5.0"); e1.Element("TargetFramework", "net5.0");
e1.Element("AppendTargetFrameworkToOutputPath", "false");
} }
std::string outputType; std::string outputType;