Skip to content

Unable to build WiX3 projects #8645

Closed
@rainersigwald

Description

@rainersigwald

Issue Description

[Ported from AB#1790945]

Tasks that run in a .NET 3.5 task host and return metadata fail with MSB4028.

Steps to Reproduce

Expected Behavior

Project build fine

Actual Behavior

error MSB4028: The “GenerateCompileWithObjectPath” task’s outputs could not be retrieved from the “CompileWithObjectPath” parameter. Specified cast is not valid.

Analysis

Stack at break:

 	System.Core.dll!System.Linq.Enumerable.CastIterator<System.Collections.Generic.KeyValuePair<string, string>>(System.Collections.IEnumerable source) Line 1039	C#
 	System.Core.dll!System.Linq.Enumerable.WhereSelectEnumerableIterator<System.Collections.Generic.KeyValuePair<string, string>, System.Collections.Generic.KeyValuePair<string, string>>.MoveNext() Line 396	C#
 	System.Core.dll!System.Linq.Enumerable.WhereSelectEnumerableIterator<System.Collections.Generic.KeyValuePair<string, string>, Microsoft.Build.Execution.ProjectMetadataInstance>.MoveNext() Line 396	C#
>	Microsoft.Build.dll!Microsoft.Build.Collections.CopyOnWritePropertyDictionary<Microsoft.Build.Execution.ProjectMetadataInstance>.ImportProperties.__Items|0() Line 294	C#
 	System.Collections.Immutable.dll!System.Collections.Immutable.ImmutableDictionary<string, Microsoft.Build.Execution.ProjectMetadataInstance>.AddRange(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, Microsoft.Build.Execution.ProjectMetadataInstance>> items, System.Collections.Immutable.ImmutableDictionary<string, Microsoft.Build.Execution.ProjectMetadataInstance>.MutationInput origin, System.Collections.Immutable.ImmutableDictionary<string, Microsoft.Build.Execution.ProjectMetadataInstance>.KeyCollisionBehavior collisionBehavior) Line 956	C#
 	System.Collections.Immutable.dll!System.Collections.Immutable.ImmutableDictionary<string, Microsoft.Build.Execution.ProjectMetadataInstance>.SetItems(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, Microsoft.Build.Execution.ProjectMetadataInstance>> items) Line 337	C#
 	Microsoft.Build.dll!Microsoft.Build.Collections.CopyOnWritePropertyDictionary<Microsoft.Build.Execution.ProjectMetadataInstance>.ImportProperties(System.Collections.Generic.IEnumerable<Microsoft.Build.Execution.ProjectMetadataInstance> other) Line 290	C#
 	Microsoft.Build.dll!Microsoft.Build.BackEnd.TaskExecutionHost.GatherTaskItemOutputs(bool outputTargetIsItem, string outputTargetName, Microsoft.Build.Framework.ITaskItem[] outputs, Microsoft.Build.Construction.ElementLocation parameterLocation, Microsoft.Build.Framework.TaskPropertyInfo parameter) Line 1399	C#
 	Microsoft.Build.dll!Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.GatherTaskOutputs(string parameterName, Microsoft.Build.Construction.ElementLocation parameterLocation, bool outputTargetIsItem, string outputTargetName) Line 432	C#
 	Microsoft.Build.dll!Microsoft.Build.BackEnd.TaskBuilder.GatherTaskOutputs(Microsoft.Build.BackEnd.ITaskExecutionHost taskExecutionHost, Microsoft.Build.BackEnd.TaskExecutionMode howToExecuteTask, Microsoft.Build.BackEnd.ItemBucket bucket) Line 1142	C#
 	Microsoft.Build.dll!Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(Microsoft.Build.BackEnd.ITaskExecutionHost taskExecutionHost, Microsoft.Build.BackEnd.Logging.TaskLoggingContext taskLoggingContext, Microsoft.Build.BackEnd.TaskHost taskHost, Microsoft.Build.BackEnd.ItemBucket bucket, Microsoft.Build.BackEnd.TaskExecutionMode howToExecuteTask) Line 978	C#
 	Microsoft.Build.dll!Microsoft.Build.BackEnd.TaskBuilder.InitializeAndExecuteTask(Microsoft.Build.BackEnd.Logging.TaskLoggingContext taskLoggingContext, Microsoft.Build.BackEnd.ItemBucket bucket, System.Collections.Generic.IDictionary<string, string> taskIdentityParameters, Microsoft.Build.BackEnd.TaskHost taskHost, Microsoft.Build.BackEnd.TaskExecutionMode howToExecuteTask) Line 660	C#
 	Microsoft.Build.dll!Microsoft.Build.BackEnd.TaskBuilder.ExecuteBucket(Microsoft.Build.BackEnd.TaskHost taskHost, Microsoft.Build.BackEnd.ItemBucket bucket, Microsoft.Build.BackEnd.TaskExecutionMode howToExecuteTask, System.Collections.Generic.Dictionary<string, string> lookupHash) Line 443	C#
 	Microsoft.Build.dll!Microsoft.Build.BackEnd.TaskBuilder.ExecuteTask(Microsoft.Build.BackEnd.TaskExecutionMode mode, Microsoft.Build.BackEnd.Lookup lookup) Line 332	C#
 	Microsoft.Build.dll!Microsoft.Build.BackEnd.TaskBuilder.ExecuteTask(Microsoft.Build.BackEnd.Logging.TargetLoggingContext loggingContext, Microsoft.Build.BackEnd.BuildRequestEntry requestEntry, Microsoft.Build.BackEnd.ITargetBuilderCallback targetBuilderCallback, Microsoft.Build.Execution.ProjectTargetInstanceChild taskInstance, Microsoft.Build.BackEnd.TaskExecutionMode mode, Microsoft.Build.BackEnd.Lookup inferLookup, Microsoft.Build.BackEnd.Lookup executeLookup, System.Threading.CancellationToken cancellationToken) Line 184	C#
 	Microsoft.Build.dll!Microsoft.Build.BackEnd.TargetEntry.ProcessBucket(Microsoft.Build.BackEnd.ITaskBuilder taskBuilder, Microsoft.Build.BackEnd.Logging.TargetLoggingContext targetLoggingContext, Microsoft.Build.BackEnd.TaskExecutionMode mode, Microsoft.Build.BackEnd.Lookup lookupForInference, Microsoft.Build.BackEnd.Lookup lookupForExecution) Line 805	C#
 	Microsoft.Build.dll!Microsoft.Build.BackEnd.TargetEntry.ExecuteTarget(Microsoft.Build.BackEnd.ITaskBuilder taskBuilder, Microsoft.Build.BackEnd.BuildRequestEntry requestEntry, Microsoft.Build.BackEnd.Logging.ProjectLoggingContext projectLoggingContext, System.Threading.CancellationToken cancellationToken) Line 501	C#
 	Microsoft.Build.dll!Microsoft.Build.BackEnd.TargetBuilder.ProcessTargetStack(Microsoft.Build.BackEnd.ITaskBuilder taskBuilder) Line 485	C#
 	Microsoft.Build.dll!Microsoft.Build.BackEnd.TargetBuilder.BuildTargets(Microsoft.Build.BackEnd.Logging.ProjectLoggingContext loggingContext, Microsoft.Build.BackEnd.BuildRequestEntry entry, Microsoft.Build.BackEnd.IRequestBuilderCallback callback, string[] targetNames, Microsoft.Build.BackEnd.Lookup baseLookup, System.Threading.CancellationToken cancellationToken) Line 165	C#
 	Microsoft.Build.dll!Microsoft.Build.BackEnd.RequestBuilder.BuildProject() Line 1228	C#

Versions & Configurations

Working version of msbuild: MSBuild version 17.6.0-preview-23122-03+f93b24b5a for .NET Framework - 17.6.0.12203)

Broken version of msbuild: (MSBuild version 17.6.0+61dd65684 for .NET Framework; 17.6.0.18004)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions