No. You are not comparing strings, you are getting a string, converting it to a version object (which is in the format of x.x.x.x) and then comparing this version object with the version object of the actual running exe file. If you right click on an exe file in windows and check the files version, does it say "V2.0"? No it will say 2.0.0.0 if it is in fact verison 2.0. So you need to use the format windows/.net uses for version numbers.