2017-07-26 14 views
2

Heute habe ich immer einen Fehler bekommen, wenn ein Benutzer versucht, die Anwendung zu installieren, ich weiß nicht, warum ich dies nach Monaten der 0 Probleme mit der Bereitstellung habe, ich habe nichts im Zusammenhang mit den Projekteigenschaften geändert Änderungen wurden mit Code in Zusammenhang gebracht. HierFehler bei der Installation der ClickOnce-Anwendung

ist das Fehlerprotokoll

PLATFORM VERSION INFO Fenster: 10.0.15063.0 (Win32NT) Common Language Runtime: 4.0.30319.42000 System.Deployment.dll: 4.7.2046.0 Bauwerft: NET47REL1 clr.dll: 4.7.2101.1 erbaut von: NET47REL1LAST dfdll.dll: 4.7.2046.0 erbaut von: NET47REL1 dfshim.dll: 10.0.15063.0 (WinBuild.160101.0800)

QUELLEN Deployment-URL: Datei: /// Y: /RE/RentaEquipos.application Deployment Provider-URL: file: //svrre/Repository/RE/RentaEquipos.application Anwendungs-URL: file: // svrre/Repository/RE /Application%20Files/RentaEquipos_2017_07_10_8/RentaEquipos.exe.manifest

IDENTITIES Deployment Identität: RentaEquipos.application, Version = 2017.7.10.8, es-CR Culture = PublicKeyToken = 0000000000000000, processor = x86

ANWENDUNG Zusammenfassung * Installierbare Anwendung.

Fehlerzusammenfassung Unten finden Sie eine Zusammenfassung der Fehler, Details zu diesen Fehlern finden Sie später im Protokoll. * Aktivierung von Y: \ RE \ RentaEquipos.application führte zu Ausnahme. Folgende Fehlermeldungen wurden erkannt: + Angegebener Cast ist nicht gültig.

KOMPONENTE STORE TRANSACTION FAILURE SUMMARY Kein Transaktionsfehler wurde erkannt.

WARNUNGEN * Das Manifest für diese Anwendung hat keine Signatur. Signaturvalidierung wird ignoriert. * Das Manifest für diese Anwendung hat keine Signatur. Signaturvalidierung wird ignoriert. * Das Manifest für diese Anwendung hat keine Signatur. Signaturvalidierung wird ignoriert.

OPERATION PROGRESS STATUS * [26/7/2017 11:23:16]: Die Aktivierung von Y: \ RE \ RentaEquipos.application wurde gestartet. * [26/7/2017 11:23:16]: Die Verarbeitung des Bereitstellungsmanifests wurde erfolgreich abgeschlossen. * [26/7/2017 11:23:16]: Die Installation der Anwendung hat begonnen.

Fehlerdetails Folgende Fehler wurden während dieses Vorgangs festgestellt. * [26/7/2017 11:23:16] System.InvalidCastException - Angegebene Cast ist nicht gültig. - Quelle: System.Deployment - Stack-Trace: bei System.Deployment.Application.DownloadManager.VerifyRequestedPrivilegesSupport (String requestedExecutionLevel) bei System.Deployment.Application.DownloadManager.DownloadApplicationManifest (AssemblyManifest DeploymentManifest, String targetDir, Uri deploymentUri,> IDownloadNotification Benachrichtigung, DownloadOptions Optionen, Uri & appSourceUri, String & appManifestPath) 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, Browsereinstellungen Browsereinstellungen, String & errorPageUrl, Uri & deploymentUri) bei System.Deployment.Application.ApplicationActivator.PerformDeploymentActivationWithRetry (Uri activationUri, Boolean IsShortcut, String textualSubId, String> deploymentProviderUrlFromExtension, Browsereinstellungen Browsereinstellungen, String & errorPageUrl) --- Ende der Stapelüberwachung vom vorherigen Standort wo Ausnahme geworfen wurde --- bei System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() bei System.Deployment.Application.ApplicationActivator.PerformDeploymentActivationWithRetry (Uri activationUri, Boolean IsShortcut, String textualSubId, String> deploymentProviderUrlFromExtension, Browsereinstellungen Browsereinstellungen, String & errorPageUrl) bei System.Deployment.Application. ApplicationActivator.ActivateDeploymentWorker (Objektstatus)

COMPONENT STORE TRANSAKTIONSDETAILS Keine Transaktionsinformationen verfügbar.

+0

Da es "System.Deployment.Application.DownloadManager.VerifyRequestedPrivilegesSupport (String requestedExecutionLevel)" ist, das die 'InvalidCastException' wirft, würde ich sagen, es ist eine gute Vermutung zu sagen, dass die für den Download verwendete' requestedExecutionLevel' ungültig ist. Vielleicht stimmt etwas in deiner Konfiguration nicht? –

+0

Getestet eine zweite Anwendung im Installation mit clickonce und es gibt mir den gleichen Fehler, auch diese zweite Anwendungen wurde vor Monaten aktualisiert und es Olny gibt mir den Fehler in Windows 10, getestet anderen Computer mit Windows 7 und beide Anwendungen installieren, ohne Probleme , aber es gibt ein zweites Problem, wenn ich ein Update für die App verlege, bekommt der Installer die Probleme in jedem Betriebssystem, weiß nicht, was mit diesem –

+0

passieren könnte Leider ist der Code für diese 'DownloadManager' Klasse nicht verfügbar in [Referenz Quelle] (http://referencesource.microsoft.com/), so dass es schwierig ist, herauszufinden, was genau es macht.Ich denke, wenn Sie wirklich verzweifelt waren, könnten Sie versuchen, "System.Deployment.dll" zu dekompilieren –

Antwort

2

Die DownloadManager.VerifyRequestedPrivilegesSupport Methode wirft einen InvalidCastException. Leider ist der Code für diese Klasse nicht auf ReferenceSource verfügbar, aber wenn System.Deployment.dlldecompiled ist, ist der Schuldige klar. Die dekompilierten Methode sieht wie folgt aus:

private static void VerifyRequestedPrivilegesSupport(string requestedExecutionLevel) 
{ 
    Logger.AddMethodCall("VerifyRequestedPrivilegesSupport(" + requestedExecutionLevel + ") called."); 
    if (!PlatformSpecific.OnVistaOrAbove) 
    return; 
    bool flag = false; 
    RegistryKey registryKey = Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System"); 
    if (registryKey != null && registryKey.GetValue("EnableLUA") != null) 
    { 
    Logger.AddInternalState("LUA policy key = " + registryKey.Name); 
    if ((int) registryKey.GetValue("EnableLUA") != 0) 
    { 
     flag = true; 
     Logger.AddInternalState("LUA is enabled."); 
    } 
    } 
    if (flag && (string.Compare(requestedExecutionLevel, "requireAdministrator", StringComparison.OrdinalIgnoreCase) == 0 || string.Compare(requestedExecutionLevel, "highestAvailable", StringComparison.OrdinalIgnoreCase) == 0)) 
    throw new InvalidDeploymentException(ExceptionTypes.UnsupportedElevetaionRequest, string.Format((IFormatProvider) CultureInfo.CurrentUICulture, Resources.GetString("Ex_ManifestExecutionLevelNotSupported"), new object[0])); 
} 

Die Linie, die die Ausnahme wirft diese sein würde:

if ((int) registryKey.GetValue("EnableLUA") != 0) 

Der Code liest Registrierungsschlüssel \HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersio‌​n\Policies\System aus der Windows-Registry. Damit diese Ausnahme ausgelöst wird, muss der Schlüssel vorhanden sein und einen Wert EnableLUA haben, aber der Wert muss als etwas anderes als eine Ganzzahl eingegeben werden. Sie müssen RegEdit.exe auf dem Computer ausführen, der den Fehler erhält, zu diesem Schlüssel in der Registrierung navigieren und diesen Wert überprüfen, um zu sehen, was es ist. Es sollte REG_DWORD in der Spalte Type für diesen Wert angezeigt werden. Wenn nicht, löschen Sie es und fügen Sie es erneut mit dem richtigen Typ hinzu.