Verwenden von Authenticode mit einer ClickOnce WPF-Anwendung

8

Okay, ich mache etwas nicht richtig, und ich brauche Hilfe. Hier ist was passiert:

  1. Ich habe ein "echtes" Authenticode-Zertifikat von Comodo , für das ich bezahlt habe.
  2. Ich versuche, eine in Visual Studio 2012 und .NET 4.5 geschriebene WPF-Anwendung zu signieren und bereitzustellen.
  3. In den Eigenschaften des Projekts habe ich "Sign the ClickOnce manifests" aktiviert und mein Zertifikat ausgewählt.
  4. Ich benutze auch den Timestamp-Server von Comodo ( Ссылка )
  5. Auf der Registerkarte "Veröffentlichen" und unter der Schaltfläche "Voraussetzungen" habe ich "Create setup program (Setup-Programm zur Installation erforderlicher Komponenten erstellen)" aktiviert.

Wenn ich baue und veröffentliche, funktioniert alles! Die setup.exe ist mit meinem Comodo-Zertifikat signiert, das ist gut. Außerdem ist die .application -Datei mit dem Comodo-Zertifikat signiert und mein Firmenname wird als Publisher angezeigt - das ist auch gut.

Hier kommt das Problem: Sobald die Anwendung auf den Client heruntergeladen wurde, gibt Windows 8 eine Warnung über ein nicht vertrauenswürdiges Programm (MyProgram.exe) aus und der Herausgeber ist nicht mein Firmenname. Also wird alles mit Ausnahme der eigentlichen ausführbaren Datei signiert.

Ich habe versucht, ein Post-Build-Skript hinzuzufügen, das signtool.exe für obj \ Release \ MyProgram.exe verwendet. Wenn ich jedoch versuche, die Anwendung zu installieren, erhalte ich einen offenkundigen Fehler, der besagt, dass die Hashwerte nicht übereinstimmen . Mit anderen Worten, das Manifest wird vor dem Post-Build-Ereignis generiert.

Wie unterzeichne ich meine EXE-Datei und pflege die Integrität des ClickOnce-Manifests? Gibt es eine einfache Möglichkeit, dies zu tun oder muss ich mage.exe für jede Datei manuell (ich hoffe nicht) verwenden?

    
Jason Williams 10.01.2013, 05:27
quelle

1 Antwort

10

Nun, niemand ist darauf angesprungen, aber zum Glück habe ich es herausgefunden!

Dank dieser Frage: " Datei hat einen anderen berechneten Hash als in Manifest angegeben "Fehler beim Unterschreiben der EXE

Ich konnte das XML der Projektdatei bearbeiten (Entlade das Projekt, wähle "Edit myproject.csproj") und füge hinzu:

%Vor%

Ich musste die signtool.exe-Datei in den SDK-Ordner (C: \ Programme (x86) \ Microsoft SDKs \ Windows \ v8.0A \ bin, in meinem Fall) verschieben, aber danach funktionierte es wie ein Charme !

Ich hoffe, das hilft jemandem in der Zukunft.

    
Jason Williams 11.01.2013, 00:24
quelle

Tags und Links