Windows message box calls are all synchronous. When attempting to port to Avalonia the MessageBox API breaks Windows compatibility thanks to an async call to display the message box. The workaround should be to wait for the task to complete via GetAwaiter().GetResult() or .Result. Both scenarios hang the application. Here's the code I am using:
var result = MessageBox.Show(
question,
AboutViewModel.ProductName,
MessageBoxButtons.YesNo,
MessageBoxImage.Information
).Result;