From 6b235d37a7bbcf2309c8c6671cc64761f35cde07 Mon Sep 17 00:00:00 2001 From: David Kean Date: Mon, 4 Dec 2017 16:40:02 +1100 Subject: [PATCH 1/2] Update CPS/MSBuild dependencies We need to consume a new API from CPS, and hence need to upgrade dependency. It brings in a new MSBuild dependency so we need to upgrade it too to avoid conflicts. --- build/Versions.props | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Versions.props b/build/Versions.props index 673bfc1463c..e4d969b3621 100644 --- a/build/Versions.props +++ b/build/Versions.props @@ -62,7 +62,7 @@ 8.0.0-alpha - 15.5.293-pre + 15.6.57-pre 2.6.0-beta1-62113-02 @@ -75,7 +75,7 @@ 4.3.0 - 15.3.409 + 15.5.0-preview-000153-1054696 9.0.1 From eb0518729375fec6797c8ff594380256e8bf9d4e Mon Sep 17 00:00:00 2001 From: David Kean Date: Tue, 5 Dec 2017 17:27:42 +1100 Subject: [PATCH 2/2] Mark "target framework" as a variant dimension This marks "target framework" dimension as a variant dimension; ie a configuration dimension that when present is is effectively ignored when calculating "active configurations" returned by IActiveConfigurationGroupService: For example, given the following multi-targeting project: -> All known project configurations: Configuration Platform TargetFramework ------------------------------------------- Debug | AnyCPU | net45 Debug | AnyCPU | net46 Release | AnyCPU | net45 Release | AnyCPU | net46 -> Active solution configuration: Debug | AnyCPU | net45 -> Target framework dimension is ignored, and active configurations returned by IActiveConfigurationGroupService: Debug | AnyCPU | net45 Debug | AnyCPU | net46 Whereas, given the following non-multi-targeting project: -> All known project configurations: Configuration Platform ------------------------ Debug | AnyCPU Release | AnyCPU -> Active solution configuration: Debug | AnyCPU -> Active configurations return active configurations returned by IActiveConfigurationGroupService: Debug | AnyCPU --- .../TargetFrameworkProjectConfigurationDimensionProvider.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Microsoft.VisualStudio.ProjectSystem.Managed/ProjectSystem/Configuration/TargetFrameworkProjectConfigurationDimensionProvider.cs b/src/Microsoft.VisualStudio.ProjectSystem.Managed/ProjectSystem/Configuration/TargetFrameworkProjectConfigurationDimensionProvider.cs index ab94443e43b..de8ccf719ba 100644 --- a/src/Microsoft.VisualStudio.ProjectSystem.Managed/ProjectSystem/Configuration/TargetFrameworkProjectConfigurationDimensionProvider.cs +++ b/src/Microsoft.VisualStudio.ProjectSystem.Managed/ProjectSystem/Configuration/TargetFrameworkProjectConfigurationDimensionProvider.cs @@ -20,6 +20,7 @@ namespace Microsoft.VisualStudio.ProjectSystem.Configuration [Export(typeof(IActiveConfiguredProjectsDimensionProvider))] [AppliesTo(ProjectCapabilities.ProjectConfigurationsDeclaredDimensions)] [Order(DimensionProviderOrder.TargetFramework)] + [ConfigurationDimensionDescription(ConfigurationGeneral.TargetFrameworkProperty, isVariantDimension:true)] internal class TargetFrameworkProjectConfigurationDimensionProvider : BaseProjectConfigurationDimensionProvider, IActiveConfiguredProjectsDimensionProvider { [ImportingConstructor]