95d7599cb1
Log shows TrustNotGrantedException thrown inside CheckForDetailedUpdate itself (ApplicationTrust.RequestTrust → DetermineTrustCore → DetermineTrust). The misleading "המשתמש סירב להעניק את ההרשאות" fires even when the user accepted the trust dialog on install and the publisher cert is unchanged: ApplicationDeployment.CheckForDetailedUpdate re-runs the TrustManager evaluation, which can't show a UAC-style prompt from inside a hosted Outlook process and falls through to a denial exception. Bypass the ClickOnce update API entirely: 1. Read CurrentVersion from ApplicationDeployment (this part is fine) 2. HTTP GET the .vsto manifest at UpdateLocation, parse the top-level <assemblyIdentity> version 3. Compare versions 4. If newer, Process.Start the .vsto URL with UseShellExecute=true so Windows hands it to VSTOInstaller.exe — which is the only thing that actually knows how to update a running VSTO add-in correctly ApplicationDeployment.Update() is also dropped because it has the same in-process limitation as the trust check. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>