Are you trying to change the icon locally, or trying to bundle an icon in with the client launcher install?
As far as I can tell, you need to have the icon.ico on the client machine and change the shortcut properties.
The Vision Client Launcher just organizes all the projects. But when you click on the 3-dots icon and click Manage, you get setting to change the icon when you create the desktop shortcut.
That seems to be the case. I can see possibly putting the icons on a share drive, creating the shortcuts up front with those icons, and creating a custom “installer” for production users which just copies these icons to their desktops, but this is incredibly hacky.
If you’re going by the way of installer, you would be better off packaging a executable scripts (that wraps the clientlauncher.exe with the specific gateway/project to launch), the associated icons per desired gateway/project, and the clientlauncher.exe within an executable installer. This would generate unique programs visible to the user after the installer completes, in theory.
The approach I am suggesting, which may not be exact to your situation, is to essentially wrap the clientlauncher.exe with a collection of executable scripts that invoke the supplied clientlauncher.exe with the appropriate arguments, and having associated .lnk files execute the scripts - the .lnk files that can embed the desired .ico for easy ID.
See Inno Setup Tools for an example of a tool that can help you automate this task. However, you will probably still run into issues with the icon of the running process.
Then in production you may distribute that installer executable.
For those that find themselves in this thread and are on Ignition 8.1: The Vision Client Launcher which ships with 8.1.12+ will convert the image you have defined in Project Properties > Vision > Launching > Launch Icon into the required platform dependent format (.ico, .icns, .png) and apply it to the shortcut when creating one.