Weblog @ rebex.cz

Weblogy na webu Rebexu
Welcome to Weblog @ rebex.cz Sign in | Help
in Search

Weblog @ Rebex.cz :: Honza Šotola

nepravidelné poznámky .NET vývojáře

Když ClickOnce aplikace nejde spustit, přeinstalovat ani nainstalovat...

Po středečním výpadku proudu přestala na jednom z počítačů našeho zákazníka fungovat aplikace, instalovaná a aktualizovaná přes ClickOnce.

Při pokusu o spuštění či opětovnou instalaci aplikace se objevil chybový popup s možností zobrazit detailní zprávu, jejíž jádrem byla výjímka:

 System.Runtime.InteropServices.COMException
  - The referenced assembly is not installed on your system. (Exception from HRESULT: 0x800736B3)
  - Source: System.Deployment
  - Stack trace:
   at System.Deployment.Internal.Isolation.IStore.GetAssemblyInformation(UInt32 Flags, IDefinitionIdentity DefinitionIdentity, Guid& riid)
   at System.Deployment.Internal.Isolation.Store.GetAssemblyManifest(UInt32 Flags, IDefinitionIdentity DefinitionIdentity)
   at System.Deployment.Application.ComponentStore.GetSubscriptionStateInternal(DefinitionIdentity subId)
   at System.Deployment.Application.SubscriptionStore.GetSubscriptionStateInternal(SubscriptionState subState)
   at System.Deployment.Application.ApplicationActivator.ProcessOrFollowShortcut(String shortcutFile, TempFile& deployFile)
   at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut)
   at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)

Odinstalovat aplikaci nešlo vůbec - v při kliknutí na "Unistall" v AddRemovePrograms něco probliklo, ale pak už se nic nedělo.

 

Brzy jsem našel skoro použitelné řešení: 

V podstatě pomohl návod uvedený v následujícím článku
http://social.msdn.microsoft.com/Forums/en-US/vbide/thread/c868d369-2399-45c7-bc0b-2dd7d5443241
tedy odinstalovat aplikaci ručně a poté již šla regulérně nainstalovat.

 

Mělo to však jeden háček: 

Všechny ClickOnce aplikace sídlí v adresáři "%userprofile%\Local Settings\Apps".
Problém je v tom, že zmíněný článek vyžaduje smazat CELÝ adresář Apps.

To se mi nelíbilo, protože na daném počítači byly dvě ClickOnce aplikace a ta druhá nebyla mnou spravovaná.
Zkusil jsem tedy v Apps promazat jen ČÁSTEČNĚ - jen ty podadresáře, které opticky odpovídaly mojí aplikaci.
Bohužel to nepomohlo.

Tak jsem si udělal zálohu adresáře Apps, pak ho CELÝ promazal, nainstaloval svoji aplikaci a obnovil zálohu.
Moje aplikace nadále fungovala, ale ta druhá aplikace začala házet výše popsanou chybu (přestože ji dříve neházela).

Pomohlo teprve druhé promazání Apps a potom _nainstalování_ obou aplikací znova.

P.S: během svého běsnění jsem také promazal záznamy o odinstalvoané aplikaci v Registry, už si nepmatuji kde - prostě jsem hledal fulltextově. Jeden ze záznamů se určitě týkal sekce uninstallers.
Ani nevím, jestli to k něčemu pomohlo či ne...

 

Závěr:

Smazat celý adresář "%userprofile%\Local Settings\Apps" je v takovéto situaci účinná pomoc,
jen musíte mít potom možnost nainstalovat všechny ClickOnce aplikace znova (znát jejich URL a případná hesla...).
Částečné promazání nepomůže.

Published 2. října 2009 14:08 by honzas
Filed under:

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

No Comments

Leave a Comment

(required) 
(optional)
(required) 
Submit
Powered by Community Server (Personal Edition), by Telligent Systems