While I was waiting for someone to offer a solution I kept at it and after much searching of InnerExceptions finally stumbled upon the answer. Deep in the InnerExceptions was one that said "String cannot be of zero length. Parameter name TargetFrameworkAttribute." After digging into this I found a post somewhere that mentioned a file called .NETFramework,Version=v4.5.AssemblyAttributes.cpp as being created in C:\Users\<my user>\AppData\local\Temp. I looked at the file and, sure enough, the TargetFrameworkAttribute and FrameworkDisplayName were empty strings. I changed them to .NETFramework,Version=v4.5.AssemblyAttributes.cpp and the program now works correctly.