I will say WD-40 is very effective for our area. I used to use a lot more than I do now that I have a large portion of my shop climate controlled. It's cheap enough I used to have a can sitting around an nearly every machine and used to keep my bare engine parts and wrenches sprayed with it. I think it works good here because of our humidity, since I live on the Ohio River valley. If you wipe stuff down with regular oil it seems to trap moisture against the metal but the Wd-40 seems to do what it says and displace the moisture.
I've also always used it on the outside of guns and I have a couple friends who claim to keep their knives wiped down with it. It's not a great lubricant and will gum up the inside of a gun but it does a fair job displacing moisture and leaving a protective film.