Benutzer mit den meisten Antworten
Problem beim Veröffentlichen einer C# Anwendung mit ClickOnce

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
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:
- 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\*) - Ü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
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
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:
- 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\*) - Ü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
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