You need a separate ClickOnce package for each environment. Each package will need to have a different assemblyIdentity name. Look in the deployment manifest (*.application) file for the assemblyIdentity element. The name attribute of this element must be different for each environment. It will look something like:
<assemblyIdentity
name="Product_TEST"
version="2.5.44.19347"
publicKeyToken="82e7b44bd73eeecd"
language="neutral"
processorArchitecture="msil"
xmlns="urn:schemas-microsoft-com:asm.v1" />
We use names like: Product_TEST, Product_UAT, Product_PROD to distinguish between each ClickOnce instance. Using this method we are able to install multiple instances of a product side-by-side on a client PC.
This means that you need to create a separate ClickOnce package for each environment. The deployment manifest will be different for each and therefore each package will have different signing signatures (if you are using signed packages). We used to use msbuild ClickOnce targets to build separate packages for all of our environments but have recently changed to building one generic package and have a custom built configuration tool that performs the ClickOnce repackaging as needed. You can also use Mage.