diff --git a/builder/vmware/common/step_configure_vmx.go b/builder/vmware/common/step_configure_vmx.go index fd8bdea87..1d94e4362 100644 --- a/builder/vmware/common/step_configure_vmx.go +++ b/builder/vmware/common/step_configure_vmx.go @@ -102,7 +102,16 @@ func (s *StepConfigureVMX) Run(_ context.Context, state multistep.StateBag) mult } } - vmxData["extendedconfigfile"] = fmt.Sprintf("%s.vmxf", s.DisplayName) + // Set the extendedConfigFile setting for the .vmxf filename to the VMName + // if displayName is not set. This is needed so that when VMWare creates + // the .vmxf file it matches the displayName if it is set. When just using + // the sisplayName if it was empty VMWare would make a file named ".vmxf". + // The ".vmxf" file would not get deleted when the VM got deleted. + if s.DisplayName != "" { + vmxData["extendedconfigfile"] = fmt.Sprintf("%s.vmxf", s.DisplayName) + } else { + vmxData["extendedconfigfile"] = fmt.Sprintf("%s.vmxf", s.VMName) + } err = WriteVMX(vmxPath, vmxData)