protected virtual void OnHandleConfigurationRelatedGlobalProperties(object sender, ActiveConfigurationChangedEventArgs eventArgs) { Debug.Assert(eventArgs != null, "Wrong hierarchy passed as event arg for the configuration change listener."); // If (eventArgs.Hierarchy == NULL) then we received this event because the solution configuration // was changed. // If it is not null we got the event because a project in teh configuration manager has changed its active configuration. // We care only about our project in the default implementation. if (eventArgs.Hierarchy == null || !Utilities.IsSameComObject(eventArgs.Hierarchy, this)) { return; } ConfigCanonicalName configCanonicalName; if (!Utilities.TryGetActiveConfigurationAndPlatform(this.Site, this, out configCanonicalName)) { throw new InvalidOperationException(); } MSBuildProject.SetGlobalProperty(this.buildProject, GlobalProperty.Configuration.ToString(), configCanonicalName.ConfigName); MSBuildProject.SetGlobalProperty(this.buildProject, GlobalProperty.Platform.ToString(), configCanonicalName.MSBuildPlatform); }
protected virtual void OnHandleConfigurationRelatedGlobalProperties(object sender, ActiveConfigurationChangedEventArgs eventArgs) { Debug.Assert(eventArgs != null, "Wrong hierarchy passed as event arg for the configuration change listener."); // If (eventArgs.Hierarchy == NULL) then we received this event because the solution configuration // was changed. // If it is not null we got the event because a project in teh configuration manager has changed its active configuration. // We care only about our project in the default implementation. if (eventArgs.Hierarchy == null || !Utilities.IsSameComObject(eventArgs.Hierarchy, this)) { return; } string name, platform; if (!Utilities.TryGetActiveConfigurationAndPlatform(this.Site, this, out name, out platform)) { throw new InvalidOperationException(); } this.buildProject.GlobalProperties.SetProperty(GlobalProperty.Configuration.ToString(), name); // If the platform is "Any CPU" then it should be set to AnyCPU, since that is the property value in MsBuild terms. if (String.Compare(platform, ConfigProvider.AnyCPUPlatform, StringComparison.Ordinal) == 0) { platform = ProjectFileValues.AnyCPU; } this.buildProject.GlobalProperties.SetProperty(GlobalProperty.Platform.ToString(), platform); }