Вам нужен отдельный пакет ClickOnce для каждой среды. Каждый пакет должен иметь свое имя AssemblyIdentity. Найдите в файле манифеста развертывания (* .application) элемент assemblyIdentity. Атрибут имени этого элемента должен быть различным для каждой среды. Это будет выглядеть примерно так:
<assemblyIdentity
name="Product_TEST"
version="2.5.44.19347"
publicKeyToken="82e7b44bd73eeecd"
language="neutral"
processorArchitecture="msil"
xmlns="urn:schemas-microsoft-com:asm.v1" />
Мы используем такие имена, как: Product_TEST, Product_UAT, Product_PROD, чтобы различать каждый экземпляр ClickOnce. Используя этот метод, мы можем установить несколько экземпляров продукта рядом на клиентском ПК.
Это означает, что вам нужно создать отдельный пакет ClickOnce для каждой среды. Манифест развертывания будет отличаться для каждого, и поэтому каждый пакет будет иметь разные подписи подписи (если вы используете подписанные пакеты). Мы использовали целевые объекты msbuild ClickOnce для создания отдельных пакетов для всех наших сред, но недавно перешли на сборку одного универсального пакета и создали специальный инструмент конфигурации, который выполняет переупаковку ClickOnce по мере необходимости. Вы также можете использовать Маг.