The problem is that the format string 'MM-dd-yyyy' does not fir to the value '2015.05.05' and for that ParseExact will throw an exception of invalid value... You may try TryParseExact, but the only thin you will get, that no exception will be thrown, but a boolean value will be returned - but still no valid DateTime object...
What you have to do is do it in two steps...
1. Turn string into valid DateTime object according its format:
DateTime oDT = DateTime.ParseExact("2015.05.05", "yyyy.MM.dd", System.Globalization.CultureInfo.InvariantCulture);
2. Format that DateTime object according your needs:
string szDT = oDT.ToString("MM-dd-yyyy");
https://dotnetfiddle.net/VJ61Nu[
^]