Você publica seu programa para ser baixado em uma certa URL. E está tudo certo, faz outros deploys, os clientes baixam felizes. Então você resolve mudar a pasta que está usando para fazer o update, por quaisquer motivos. E o ClickOnce dá erro no update, porque baixou de urls diferentes, e recomenda que você desinstale o programa original, baixe o novo e instale de novo.
Existem diversos passo-a-passo na web de como fazer isso, incluindo mageui, alterações direto na configuração do projeto do programa, etc. A ideia é fazer um deploy intermediário, que estaria na pasta antiga, mas apontaria o update para a nova pasta. Não funciona, o clickonce ainda reclama da nova url.
O que funcionou de verdade foi colocar um url rewrite no web.config da pasta de publish original. Quando o programa bate nessa pasta, ela passa a devolver o conteúdo da outra pasta. Na outra pasta, o programa será baixado com a nova url de update. Este seria o código a adicionar no web.config da
pasta antiga, dentro de <system.webServer>:
<rewrite>
<rules>
<clear />
<rule name="Redirect New Path" stopProcessing="true">
<match url="^
(.*)$" />
<action type="Rewrite" url="
/[aqui você coloca a nova pasta]/{R:1}" redirectType="Temporary" appendQueryString="true" />
</rule>
</rules>
</rewrite>
* ClickOnce é uma ferramenta do Visual Studio para fazer deploys / updates nos programas que você cria lá