2014-03-18 13 views
11

Ich habe seit Tagen wirklich mit diesem gekämpft. Ich habe andere Beiträge wie ClickOnce Deployment Error: different computed hash than specified in manifest gesehen, aber die Lösungen scheinen nicht für mich zu arbeiten.Clickonce signierte Anwendung schlägt mit "hat einen anderen berechneten Hash als in Manifest angegeben". Magier löst das Problem nicht

Ich habe ein gültiges Codesignaturzertifikat und verwende es seit Monaten, um meine ClickOnce-Anwendung zu signieren. Ich erkannte, dass ich die ausführbare Datei nicht signierte, und ich selbst versuchte es. Jedes Mal, wenn ich die Datei "setup.exe" veröffentliche und ausführe, schlägt sie fehl mit: "Datei, xxxxxx.dll, hat einen anderen berechneten Hash als im Manifest angegeben."

Wenn ich die Exe und Dlls nicht unterzeichne, kann ich erneut bereitstellen. Ich habe sichergestellt, dass alle Kopien der exe/dlls in allen Verzeichnissen (Target, Obj) vor der Veröffentlichung signiert sind. Ich habe versucht, Mage/MageUI zu verwenden, hatte aber keinen Erfolg. Ist es möglich, eine ClickOnce-Installation ohne signierten Code zu konfigurieren und dann signierten Code zu veröffentlichen? Scheint logisch, aber vielleicht fehlt mir etwas.

Danke, Gregg

Antwort

7

Gibt es eine Chance, dass Sie eine WPF-Anwendung zu implementieren versuchen und Visual Studio 2012 oder höher verwenden? Wenn dies der Fall ist, müssen Sie die "AfterCompile" -Einstellung in Ihrer Projektdatei verwenden, um die Anwendung zu signieren, oder Sie enden mit dem Hash-Mismatch.

diese Stackoverflow Beitrag anzeigen: SignTool Not Signing ClickOnce App Using SHA256, Only Uses SHA1

die zu Robins ausgezeichnete Blog-Lösung verbindet: http://robindotnet.wordpress.com/2013/04/14/windows-8-and-clickonce-the-definitive-answer-revisited/

+2

DANKE !!! Ich habe gerade bestätigt, dass es so war. Ich habe nie gedacht, dass WPF ein Problem in einem späteren Visual Studio war. Ich habe tagelang versucht, das herauszufinden. – TheFIXGuy

0

Viele meiner Probleme mit Clickonce und Codesignierung Visual Studio 2013, einschließlich dieses spezielle Problem verwenden, waren gelöst durch die Installation vs2013 Update 4.

(vielleicht Update 3 wäre genug gewesen, aber ich installiert Update 4 nach mehreren Tagen der Frustration)

Ich benutze Signntool mit der Option/sha1 im Post-Build-Ereignis jeder Baugruppe. (Lauf immer).

2

Entfernen Sie System.Deployment-Referenz und fügen Sie es zurück in. Wir hatten das Problem nach dem Verschieben des Projekts von VS2012 zu VS2015, und diese Aktion hat es funktioniert wieder nach Stunden des Ausprobierens verschiedener Ideen.

btw - hier ist eine einfache Anleitung, wie die akzeptierte Antwort zu tun:

  • Recht vor, das Projekt klicken und wählen Sie „Unload-Projekt“

  • Recht vor, das Projekt klicken und wählen Sie „Bearbeiten“

  • folgendes vor dem letzten Projekt schließen Tag hinzufügen:

<Target Name="AfterCompile" Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
 
    <Exec Command="&quot;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\signtool.exe&quot; sign /f &quot;C:\temp\myPFX.pfx&quot; /p &quot;admin&quot; /v &quot;$(ProjectDir)obj\$(ConfigurationName)\$(TargetFileName)&quot;" /> 
 
    </Target>

  • Veränderung der Lage von Signtool.exe und pfx (Unterschrift) Datei auf Ihrem eigenen Standorten

  • die Datei Projekt speichern

  • neu laden das Projekt

Verwandte Themen