none
Problem beim Veröffentlichen einer C# Anwendung mit ClickOnce RRS feed

  • Frage

  • Hallo,

    ich möchte eine C# Anwendung (Windows Forms) per ClickOnce auf einem Netzlaufwerk (im internen Netzwerk) veröffentlichen, damit die Anwendung von mehreren Leuten genutzt werden kann (und Updates automatisch installiert werden). Dies lief bisher bei Konsolenanwendungen auch immer einwandfrei (nutze Visual C# 2010 Express). 

    Bei der Windows Forms Anwendung habe ich jedoch enorme Schwierigkeiten mit der Verifizierung. Immer wenn ich versuche die Anwendung zu starten, erhalte ich folgende Fehlermeldung: "Ausnahme beim Ermitteln der Vertrauensstellung. Folgende Fehlermeldungen wurden entdeckt: + Der Wert liegt außerhalb des erwarteten Bereichs.". Unten angehängt findet ihr das komplette log-file. Ich habe bereits mehrmals versucht ein neues Zertifikat zu verwenden. Habe dies auch bei mir installiert. Wenn ich bei den Eigenschaften des Projektes unter dem Reiter "Sicherheit" bei "Erweitert" "Der Anwendung Zugriff auf die Ursprungsseite gewähren" aktiviere erhalte ich zudem folgende Fehlermeldung beim Debuggen:

    Der Wert darf nicht NULL sein.\r\nParametername: activationContext
    Stracktrace:
       bei System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData)
       bei System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext)
       bei System.Activator.CreateInstance(ActivationContext activationContext)
       bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone()
       bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       bei System.Threading.ThreadHelper.ThreadStart()

    Hat jemand eine Idee, wie sich der Fehler beheben lässt? Ich würde auch ohne Signierung arbeiten wenn es irgendwie möglich wäre. Da der Kreis der Anwender überschaubar ist (4-5 Personen, alle im internen Netzwerk) ist die Anforderung dort auch nicht so hoch.

    Grüß

    Felix

    Hier das Log File:

    INFO ZUR PLATTFORMVERSION
    	Windows 			: 6.1.7601.65536 (Win32NT)
    	Common Language Runtime 	: 4.0.30319.17626
    	System.Deployment.dll 		: 4.0.30319.17626 built by: FX45RCREL
    	clr.dll 			: 4.0.30319.17626 built by: FX45RCREL
    	dfdll.dll 			: 4.0.30319.17626 built by: FX45RCREL
    	dfshim.dll 			: 4.0.31106.0 (Main.031106-0000)
    
    QUELLEN
    	Bereitstellungs-URL			: file:///[[PFAD ZUR DATEI]].application
    	Bereitstellungsanbieter-URL		: file://[[PFAD ZUR DATEI]].application
    	Anwendungs-URL			: P[[PFAD ZUR MANIFESTDATEI]].exe.manifest
    
    IDENTITÄTEN
    	Bereitstellungsidentität		: PROGRAMNAME.application, Version=2.0.0.24, Culture=en, PublicKeyToken=ef7410007336e129, processorArchitecture=x86
    	Anwendungsidentität		: PROGRAMNAME.exe, Version=2.0.0.24, Culture=en, PublicKeyToken=ef7410007336e129, processorArchitecture=x86, type=win32
    
    ZUSAMMENFASSUNG FÜR ANWENDUNG
    	* Installierbare Anwendung.
    
    FEHLERZUSAMMENFASSUNG
    	Es folgt eine Zusammenfassung der Fehler. Details zu diesen Fehlern werden später im Protokoll aufgelistet.
    	* Ausnahme beim Ermitteln der Vertrauensstellung. Folgende Fehlermeldungen wurden entdeckt:
    		+ Der Wert liegt außerhalb des erwarteten Bereichs.
    	* Die Aktivierung von [[PFAD ZUR DATEI]].application führte zu einer Ausnahme. Folgende Fehlermeldungen wurden entdeckt:
    		+ Der Wert liegt außerhalb des erwarteten Bereichs.
    
    FEHLERZUSAMMENFASSUNG FÜR DIE SPEICHERTRANSAKTION DER KOMPONENTE
    	Es wurde kein Transaktionsfehler festgestellt.
    
    WARNUNGEN
    	Während dieses Vorgangs gab es keine Warnungen.
    
    FORTSCHRITTSSTATUS DES VORGANGS
    	* [23.07.2012 11:55:30] : Die Aktivierung von [[PFAD ZUR DATEI]].application wurde gestartet.
    	* [23.07.2012 11:55:30] : Das Verarbeiten des Bereitstellungsmanifestes wurde erfolgreich abgeschlossen.
    	* [23.07.2012 11:55:30] : Die Installation der Anwendung wurde gestartet.
    	* [23.07.2012 11:55:30] : Das Verarbeiten des Anwendungsmanifestes wurde erfolgreich abgeschlossen.
    	* [23.07.2012 11:55:31] : Kompatible Laufzeitversion 4.0.30319 gefunden.
    
    FEHLERDETAILS
    	Folgende Fehler wurden bei diesem Vorgang entdeckt.
    	* [23.07.2012 11:55:31] System.ArgumentException
    		- Der Wert liegt außerhalb des erwarteten Bereichs.
    		- Quelle: mscorlib
    		- Stapelüberwachung:
    			bei System.Deployment.Internal.Isolation.IDefinitionAppId.EnumAppPath()
    			bei System.ActivationContext.CreateFromNameAndManifests(ApplicationIdentity applicationIdentity, String[] manifestPaths)
    			bei System.ActivationContext.CreatePartialActivationContext(ApplicationIdentity identity, String[] manifestPaths)
    			bei System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
    			bei System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
    			bei System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
    			bei System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
    	* [23.07.2012 11:55:31] System.ArgumentException
    		- Der Wert liegt außerhalb des erwarteten Bereichs.
    		- Quelle: mscorlib
    		- Stapelüberwachung:
    			bei System.Deployment.Internal.Isolation.IDefinitionAppId.EnumAppPath()
    			bei System.ActivationContext.CreateFromNameAndManifests(ApplicationIdentity applicationIdentity, String[] manifestPaths)
    			bei System.ActivationContext.CreatePartialActivationContext(ApplicationIdentity identity, String[] manifestPaths)
    			bei System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
    			bei System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
    			bei System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
    			bei System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
    
    DETAILS ZUR SPEICHERTRANSAKTION DER KOMPONENTE
    	Es sind keine Transaktionsinformationen verfügbar.


    • Bearbeitet fcologne Montag, 23. Juli 2012 10:03
    Montag, 23. Juli 2012 10:01

Antworten

  • Die passende Antwort zu diesem Problem scheint mir dieser Beitrag auf Stackoverflow zu sein:

    • Im Installationspfad befindet sich möglicherweise ein Ampersand "&". Versuchen Sie die Anwendung in einem anderen Pfad zu installieren.

    Leider ist das ein bekanntes Problem und wird wahrscheinlich nicht behoben werden.

    Es kann auch sein, dass das nicht weiter hilft, denn das Problem ist vielschichtig. In den US-Foren wurde bereits ausführlich diskutiert. Ich versuche mal die Hinweise zusammen zu fassen:

    1. Vielleicht handelt es sich um ein Cache-Problem. In diesem Fall
      - deinstalliere die Anwendung,
      - lösche die Installationsdateien
      - und den Cache (in C:\Users\<username>\AppData\Local\Apps\2.0\*)
    2. Überprüfe die referenzierten Controls und Bibliotheken. Das kann ziemlich aufwändig werden, weil eine Referenz wiederum eigene Referenzen haben kann. Auch diese müssen überprüft werden. Ich empfehle zunächst die binären Referenzen (zu kompilierten DLLs) zu überprüfen und diese ggf. in der aktuellen Umgebung erneut zu bauen. Bei den Referenzen sollten die Versionsnummern stimmen und es sollte keine zirkulären Referenzen geben. Hinweis auf unpassende Versionnummern ist auch die Nachricht "The application requires that assembly <Assembly Name> be installed in the Global Assembly Cache (GAC) first".

    Die komplette Geschichte mit den Referenzen lässt sich in den als Antwort markierten Beiträgen nachlesen.


    Viele Grüße
    Jonathan Best
    MSDN Hotline für MSDN Online Deutschland

    Disclaimer:
    Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
    Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die MSDN Hotline: http://www.msdn-online.de/Hotline
    MSDN Hotline: Schnelle & kompetente Hilfe für Entwickler: kostenfrei!

    Es gelten für die MSDN Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu MarkenzeichenInformationen zur Datensicherheit sowie die gesonderten Nutzungsbedingungen für die MSDN Hotline.

    • Als Antwort markiert fcologne Mittwoch, 1. August 2012 14:46
    Mittwoch, 1. August 2012 14:36

Alle Antworten

  • Die passende Antwort zu diesem Problem scheint mir dieser Beitrag auf Stackoverflow zu sein:

    • Im Installationspfad befindet sich möglicherweise ein Ampersand "&". Versuchen Sie die Anwendung in einem anderen Pfad zu installieren.

    Leider ist das ein bekanntes Problem und wird wahrscheinlich nicht behoben werden.

    Es kann auch sein, dass das nicht weiter hilft, denn das Problem ist vielschichtig. In den US-Foren wurde bereits ausführlich diskutiert. Ich versuche mal die Hinweise zusammen zu fassen:

    1. Vielleicht handelt es sich um ein Cache-Problem. In diesem Fall
      - deinstalliere die Anwendung,
      - lösche die Installationsdateien
      - und den Cache (in C:\Users\<username>\AppData\Local\Apps\2.0\*)
    2. Überprüfe die referenzierten Controls und Bibliotheken. Das kann ziemlich aufwändig werden, weil eine Referenz wiederum eigene Referenzen haben kann. Auch diese müssen überprüft werden. Ich empfehle zunächst die binären Referenzen (zu kompilierten DLLs) zu überprüfen und diese ggf. in der aktuellen Umgebung erneut zu bauen. Bei den Referenzen sollten die Versionsnummern stimmen und es sollte keine zirkulären Referenzen geben. Hinweis auf unpassende Versionnummern ist auch die Nachricht "The application requires that assembly <Assembly Name> be installed in the Global Assembly Cache (GAC) first".

    Die komplette Geschichte mit den Referenzen lässt sich in den als Antwort markierten Beiträgen nachlesen.


    Viele Grüße
    Jonathan Best
    MSDN Hotline für MSDN Online Deutschland

    Disclaimer:
    Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
    Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die MSDN Hotline: http://www.msdn-online.de/Hotline
    MSDN Hotline: Schnelle & kompetente Hilfe für Entwickler: kostenfrei!

    Es gelten für die MSDN Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu MarkenzeichenInformationen zur Datensicherheit sowie die gesonderten Nutzungsbedingungen für die MSDN Hotline.

    • Als Antwort markiert fcologne Mittwoch, 1. August 2012 14:46
    Mittwoch, 1. August 2012 14:36
  • Danke, in dem Pfad war tatsächlich ein '&'. Darauf wäre ich nun wirklich nie gekommen... Aber jetzt funktioniert die Installation... :)
    Mittwoch, 1. August 2012 14:46
  • Großartig! Freut mich, dass wir helfen konnten. :)
    Mittwoch, 1. August 2012 15:07