VS: Fix missing <Configurations> property for DOTNET_SDK

Fixes #26325
This commit is contained in:
Calum Robinson
2024-09-25 16:20:12 +01:00
parent b1aba2fb4e
commit 55a5094f0e
4 changed files with 34 additions and 0 deletions

View File

@@ -914,6 +914,8 @@ void cmVisualStudio10TargetGenerator::WriteSdkStyleProjectFile(
Elem e1(e0, "PropertyGroup");
this->WriteCommonPropertyGroupGlobals(e1);
e1.Element("Configurations", cmJoinStrings(this->Configurations, ";", ""));
e1.Element("EnableDefaultItems", "false");
// Disable the project upgrade prompt that is displayed the first time a
// project using an older toolset version is opened in a newer version

View File

@@ -6,6 +6,7 @@ run_cmake(VsDotnetSdkDefines)
run_cmake(DotnetSdkVariables)
run_cmake(VsDotnetSdkXamlFiles)
run_cmake(VsDotnetSdkAssemblyName)
run_cmake(VsDotnetSdkConfigurations)
function(run_VsDotnetSdk)
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/VsDotnetSdk-build)

View File

@@ -0,0 +1,20 @@
set(csProjectFile ${RunCMake_TEST_BINARY_DIR}/foo.csproj)
if(NOT EXISTS "${csProjectFile}")
set(RunCMake_TEST_FAILED "Project file ${csProjectFile} does not exist.")
return()
endif()
set(hasConfigurations FALSE)
file(STRINGS "${csProjectFile}" lines)
foreach(line IN LISTS lines)
if(line MATCHES "<Configurations>Debug;Release;MinSizeRel;RelWithDebInfo;ExtraTestConfig</Configurations>")
set(hasConfigurations TRUE)
endif()
endforeach()
if(NOT hasConfigurations)
set(RunCMake_TEST_FAILED "<Configurations> not found in ${csProjectFile}.")
endif()

View File

@@ -0,0 +1,11 @@
enable_language(CSharp)
if(NOT CMAKE_CSharp_COMPILER)
return()
endif()
set(CMAKE_SHARED_LINKER_FLAGS_EXTRATESTCONFIG "${CMAKE_SHARED_LINKER_FLAGS_Debug}")
list(APPEND CMAKE_CONFIGURATION_TYPES ExtraTestConfig)
set(CMAKE_DOTNET_SDK "Microsoft.NET.Sdk")
add_library(foo SHARED lib1.cs)