Closed brentwarwick closed 1 year ago
The hang is most likely issue #13 and should be fixed in HeatWave v0.9.3.
We have been unable to reproduce the exception by changing the project configuration, so we need a little more information.
Please provide the actual Visual Studio version number. You can get the version number by clicking on "Help" in the menu then "About Microsoft Visual Studio" and copy the "Version 17.#.#" found value in the dialog.
Please provide exact steps you use to reproduce the issue. We tested by: a. Click on "Build" in the menu b. Selecting "Configuration Manager..." c. Changing the "Active solution configuration" did not encounter the issue.
We are curious if a difference in Visual Studio version or the repro steps is necessary for us to reproduce the issue.
Using VS 17.4.3.
I think I might have it nailed down:
Create a new Wix MSI Package project. Add the Wixtoolset.Util NuGet package.
Now try to swap configurations. Without the NuGet package, swapping configurations will succeed. Once I add the Util package, I start getting the exception.
Thank you for the additional information. We are able to reproduce the issue and opened a backlog item to investigate.
We expect this issue is fixed in HeatWave v0.9.4 now available in Visual Studio Marketplace so Visual Studio should provide notification of the update.
Note: HeatWave v0.9.4 requires WiX v4-rc.2 so be sure to update any existing WiX v4 projects to -rc.2 when upgrading to this latest HeatWave.
HeatWave Version
0.9.2
Visual Studio Version
2022
Repro Steps
I have a solution with a Wix setup project and bootstrapper project (in addition to several other C# projects). Either of the two Wix projects will cause VS to throw an exception when switching project configurations to anything. In addition, VS hangs almost every time when loading the solution when it gets to the first Wix project. Here is the log generated:
Recoverable System.AggregateException: One or more errors occurred. ---> System.ArgumentNullException: Value cannot be null. Parameter name: key at System.Collections.Immutable.Requires.FailArgumentNullException(String parameterName) at System.Collections.Immutable.ImmutableDictionaryd19.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.ProjectSystem.CoreProjectTreeProviderBase.<>cDisplayClass76_1.<b2>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.ProjectSystem.CoreProjectTreeProviderBase.<>cDisplayClass78_0.<gWaitOnTask|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.VisualStudio.ProjectSystem.CommonProjectSystemTools.Rethrow(Exception ex)
at Microsoft.VisualStudio.ProjectSystem.ExceptionFilter.<>cDisplayClass2_0.gAction|0()
at GuardMethodClass.GuardMethod(Funcb0(IProjectVersionedValue`1 treeSnapshot, ConfiguredProjectExports configuredProjectExports, CancellationToken ct)
at Microsoft.VisualStudio.ProjectSystem.ProjectTreeProviderBase.TreeUpdateSubmission.d 19.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.ProjectSystem.CoreProjectTreeProviderBase.<>cDisplayClass76_1.<b2>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.ProjectSystem.CoreProjectTreeProviderBase.<>cDisplayClass78_0.<g WaitOnTask|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.VisualStudio.ProjectSystem.CommonProjectSystemTools.Rethrow(Exception ex)
at Microsoft.VisualStudio.ProjectSystem.ExceptionFilter.<>c__DisplayClass2_0.g__Action|0()
at GuardMethodClass.GuardMethod(Func
2.TryGetValue(TKey key, TValue& value) at Microsoft.VisualStudio.ProjectSystem.PropertyPages.PropertyPagesCatalog.BindToContext(String schemaName, IProjectPropertiesContext context) at Microsoft.VisualStudio.ProjectSystem.Designers.RuleFactory.ReplicateRule(IRule ruleToReplicate, IPropertyPagesCatalog catalog) at Microsoft.VisualStudio.ProjectSystem.ProjectTreeProviderBase.RenewBrowseObjectPropertiesPerConfiguration(IProjectTree projectTree, IPropertyPagesCatalog browseObjectCatalog, ConfiguredProjectExports configuredProjectExports) at Microsoft.VisualStudio.ProjectSystem.ProjectTreeExtensions.UpdateSelfAndAllDescendents(IProjectTree tree, Func
2 updateAction) at Microsoft.VisualStudio.ProjectSystem.ProjectTreeExtensions.UpdateSelfAndAllDescendents(IProjectTree tree, Func2 updateAction) at Microsoft.VisualStudio.ProjectSystem.ProjectTreeExtensions.UpdateSelfAndAllDescendents(IProjectTree tree, Func
2 updateAction) at Microsoft.VisualStudio.ProjectSystem.ProjectTreeExtensions.UpdateSelfAndAllDescendents(IProjectTree tree, Func2 updateAction) at Microsoft.VisualStudio.ProjectSystem.ProjectTreeProviderBase.UpdateTreeForActiveConfigurationChange(IProjectTree projectTree, IProjectCatalogSnapshot catalogs, ConfiguredProjectExports configuredProjectExports, CancellationToken cancellationToken) at Microsoft.VisualStudio.ProjectSystem.Designers.PhysicalProjectTreeProvider.<>c__DisplayClass143_0.<ProjectSubscriptionService_ChangedAsync>b__0(IProjectVersionedValue
1 treeSnapshot, ConfiguredProjectExports configuredProjectExports, CancellationToken ct) at Microsoft.VisualStudio.ProjectSystem.ProjectTreeProviderBase.TreeUpdateSubmission.1 , Func
2 , Func2 ) --- End of inner exception stack trace --- ---> (Inner Exception #0) System.ArgumentNullException: Value cannot be null. Parameter name: key at System.Collections.Immutable.Requires.FailArgumentNullException(String parameterName) at System.Collections.Immutable.ImmutableDictionary
2.TryGetValue(TKey key, TValue& value) at Microsoft.VisualStudio.ProjectSystem.PropertyPages.PropertyPagesCatalog.BindToContext(String schemaName, IProjectPropertiesContext context) at Microsoft.VisualStudio.ProjectSystem.Designers.RuleFactory.ReplicateRule(IRule ruleToReplicate, IPropertyPagesCatalog catalog) at Microsoft.VisualStudio.ProjectSystem.ProjectTreeProviderBase.RenewBrowseObjectPropertiesPerConfiguration(IProjectTree projectTree, IPropertyPagesCatalog browseObjectCatalog, ConfiguredProjectExports configuredProjectExports) at Microsoft.VisualStudio.ProjectSystem.ProjectTreeExtensions.UpdateSelfAndAllDescendents(IProjectTree tree, Func2 updateAction) at Microsoft.VisualStudio.ProjectSystem.ProjectTreeExtensions.UpdateSelfAndAllDescendents(IProjectTree tree, Func
2 updateAction) at Microsoft.VisualStudio.ProjectSystem.ProjectTreeExtensions.UpdateSelfAndAllDescendents(IProjectTree tree, Func2 updateAction) at Microsoft.VisualStudio.ProjectSystem.ProjectTreeExtensions.UpdateSelfAndAllDescendents(IProjectTree tree, Func
2 updateAction) at Microsoft.VisualStudio.ProjectSystem.ProjectTreeProviderBase.UpdateTreeForActiveConfigurationChange(IProjectTree projectTree, IProjectCatalogSnapshot catalogs, ConfiguredProjectExports configuredProjectExports, CancellationToken cancellationToken) at Microsoft.VisualStudio.ProjectSystem.Designers.PhysicalProjectTreeProvider.<>cDisplayClass143_0.1 , Func
2 , Func`2 )<---Actual Result
"Visual Studio ran into an unexpected problem, and may affect some project system functions."
Expected Result
Expected nothing, just change in project configurations.