2009-03-31 14 views
12

Mam program wdrożony przy użyciu wdrożenia ClickOnce, a następnie zainstalowany na moim komputerze. Próbowałem uruchomić go, a on dał mi następujący błąd:Problemy z instalacją C# wdrożenia

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. 

Nie mogę odinstalować program, ale nie mogę zrozumieć, dlaczego (okno dialogowe pojawia się na chwilę i znika, zanim można go odczytać) i nie mogę ponownie zainstalować aplikacji, dopóki nie odinstaluję starej wersji.

Co może być problemem i co mogę z tym zrobić?

Poprzednie wersje zostały wdrożone za pomocą programu Visual Studio 2008. Ta wersja została wdrożona za pomocą programu Visual C# Express Edition. Istnieje zależność dla pakietu połączenia MySQL. Nie dostosowałem żadnego z ustawień podczas publikowania, poza lokalizacją katalogu i numerem wersji (nie jest duplikatem numeru wersji).

+0

Czy używasz współdziałania z obiektem COM w swojej aplikacji? Czy na pewno instalujesz obiekt COM poprawnie w systemie klienta? Nie można po prostu wdrożyć zespołu współdziałania COM, trzeba także wdrożyć obiekt COM. – casperOne

+0

Aplikacja działa dobrze. Jedyna różnica między poprzednimi wdrożeniami a tym, że korzystałem wcześniej z VS2008, teraz używam Visual C# Express 2008. Używam wtyczki do MySQL. – Elie

+0

Po pierwsze, jak mam odinstalować, ponieważ panel Dodaj/Usuń programy nie będzie działał. Czy jest inny sposób na zrobienie tego? – Elie

Odpowiedz

16

Twój sklep z aplikacjami może być pomieszany. Można spróbować usunąć ten klucz (będzie to wszystko usunąć zainstalowane aplikacje Click-Po):

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

Na marginesie, jeśli aplikacja „działa” oprócz tego błędu lub na innych maszynach, to jest to prawdopodobnie Twoja kwestia.

+1

Ten problem dotyczy tylko jednego użytkownika. Czy wpłynie to na wszystkie wdrożenia Click-once? Jak mogę się upewnić, że usuwa tylko moje wdrożenie? – Elie

+0

Tak, to jest prawdopodobnie twój problem. Ta poprawka wpłynie na wszystkie deplyoments na tym komputerze. Nie znalazłem sposobu, aby to naprawić bez przechodzenia do takiego kroku; Nie mam teraz platformy programistycznej do wypróbowania niektórych rzeczy = ( – JasonRShaver

+0

Po prostu użyłem tego rozwiązania z powodzeniem. Nie chciałbym tego robić, gdyby było więcej niż jedna aplikacja tego typu ... ale mamy tylko jedną. – Godeke