2009-03-31 13 views
12

Ho un programma distribuito utilizzando la distribuzione ClickOnce e quindi installato sulla mia macchina. Ho provato a farlo funzionare, e mi ha dato il seguente errore:Problemi di installazione della distribuzione C#

PLATFORM VERSION INFO 
    Windows     : 5.1.2600.196608 (Win32NT) 
    Common Language Runtime : 2.0.50727.3053 
    System.Deployment.dll : 2.0.50727.3053 (netfxsp.050727-3000) 
    mscorwks.dll   : 2.0.50727.3053 (netfxsp.050727-3000) 
    dfdll.dll    : 2.0.50727.3053 (netfxsp.050727-3000) 
    dfshim.dll    : 2.0.50727.3053 (netfxsp.050727-3000) 

SOURCES 
    Deployment url   : file:///C:/../MyProg.appref-ms%7C 

ERROR SUMMARY 
    Below is a summary of the errors, details of these errors are listed later in the log. 
    * Activation of C:\..\MyProg.appref-ms| resulted in exception. Following failure messages were detected: 
     + The referenced assembly is not installed on your system. (Exception from HRESULT: 0x800736B3) 

COMPONENT STORE TRANSACTION FAILURE SUMMARY 
    No transaction error was detected. 

WARNINGS 
    There were no warnings during this operation. 

OPERATION PROGRESS STATUS 
    * [3/30/09 2:45:10 PM] : Activation of C:\..\MyProg.appref-ms| has started. 

ERROR DETAILS 
    Following errors were detected during this operation. 
    * [3/30/09 2:45:16 PM] 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.GetAssemblyManifest(DefinitionIdentity asmId) 
      at System.Deployment.Application.ComponentStore.GetSubscriptionStateInternal(DefinitionIdentity subId) 
      at System.Deployment.Application.SubscriptionStore.GetSubscriptionStateInternal(SubscriptionState subState) 
      at System.Deployment.Application.SubscriptionState.Validate() 
      at System.Deployment.Application.SubscriptionState.get_IsInstalled() 
      at System.Deployment.Application.ApplicationActivator.ProcessOrFollowShortcut(String shortcutFile, String& errorPageUrl, TempFile& deployFile) 
      at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl) 
      at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state) 

COMPONENT STORE TRANSACTION DETAILS 
    No transaction information is available. 

Non riesco a disinstallare il programma, ma non riesco a capire perché (una finestra si apre per un secondo e scompare prima che io possa leggerlo), e non riesco a reinstallare l'applicazione fino a quando non ho disinstallato la versione precedente.

Quale potrebbe essere il problema e cosa posso fare al riguardo?

Le versioni precedenti sono state distribuite utilizzando Visual Studio 2008. Questa versione è stata distribuita utilizzando Visual C# Express Edition. Esiste una dipendenza per il pacchetto di connessione MySQL. Non ho personalizzato nessuna delle impostazioni durante la pubblicazione, oltre la posizione della directory e il numero di versione (numero di versione non duplicato).

+0

Stai utilizzando l'interoperabilità con un oggetto COM nella tua app? Sei sicuro di installare correttamente l'oggetto COM sul sistema client? Non è possibile semplicemente distribuire l'assembly di interoperabilità COM, è necessario distribuire anche l'oggetto COM. – casperOne

+0

L'applicazione funzionava perfettamente. L'unica differenza tra le distribuzioni precedenti e questa è che stavo usando VS2008 prima, e ora sto usando Visual C# Express 2008. Sto usando un plugin per MySQL. – Elie

+0

Per iniziare, come procedere sulla disinstallazione, poiché il pannello Installazione applicazioni non funzionerà. c'è un altro modo per fare ciò? – Elie

risposta

16

Il negozio di applicazioni potrebbe essere incasinato. Si può provare l'eliminazione di questa chiave (sarà tutto rimuovere tutte le applicazioni Click-Once attualmente installati):

HKEY_CURRENT_USER\Software\Classes\SOFTWARE\Microsoft\Windows\CurrentVersion\Deployment\SideBySide 

Come nota, se l'applicazione 'funziona' inoltre che l'errore o su altre macchine, allora questo è probabilmente il vostro problema.

+1

Questo problema riguarda solo un utente. Ciò influirà su tutte le distribuzioni Click-once? Come posso assicurarmi che cancelli solo la mia implementazione? – Elie

+0

Sì, allora questo è probabilmente il tuo problema. Questa correzione avrebbe effetto su tutti i deplyoments su quella macchina. Non ho trovato un modo per risolvere questo problema senza andare ancora a un tale passo; Non ho una piattaforma di sviluppo in questo momento per provare alcune cose fuori = ( – JasonRShaver

+0

Ho appena usato questa soluzione con successo. Mi dispiacerebbe fare questo se ci fosse più di una app di questa natura ... ma ne abbiamo solo una. – Godeke

Problemi correlati