Private/Get-CorrectGuidForField.ps1

Function Get-CorrectGuidForField {
    param
    (
        [SolutionComponent]$component,
        [hashtable]$Metadata
    )

    $ObjectId = $component.ObjectId
    $entityLogicalName = $metadata.Source.BySchemaName.Attributes[$component.SchemaName].EntityLogicalName
    $targetMetadataId = $metadata.Target.BySchemaName.Attributes[$component.SchemaName].MetadataId

    if ($targetMetadataId -and ($targetMetadataId -ne $ObjectId)) {
        $component.OriginalObjectId = $component.ObjectId
        $component.ObjectId = $targetMetadataId
        Write-Verbose ("Set objectid {0} to target metadataid {1} for field {2} on Entity {3} " -f $ObjectId, $targetMetadataId, $Component.SchemaName, $entityLogicalName)
    } 

    Write-Output $component
}