I'm afraid you're not reading what's already been posted. As we have already said, if your application relies on libraries that are only available in 32-bit then you MUST compile your app in 32-bit as well. Compiling in 64-bit specifically is the exact opposite of what has already been recommended.
Here's the thing. You compile the app on your 32-bit system for Any CPU. That means that on your 32-bit system it will run in 32-bit mode and on your friend's 64-bit system it will run in 64-bit mode. The problem is, Winsock is only available in 32-bit. As such, your app works on your 32-bit machine because it's a 32-bit application accessing a 32-bit library. On the 64-bit machine though, it's a 64-bit app and there is no 64-bit Winsock, hence the error message, so the app fails. What you need to do is compile the app in 32-bit so that it runs as a 32-bit app on the 64-bit machine and it will then successfully access the 32-bit Winsock.
Having said all that, you shouldn;t be using Winsock in VB.NET anyway. Ifyou'd used the System.Net classes in the Framework instead of that old VB6 ActiveX control then you wouldn't have had this problem at all.