Okay, ich mache etwas nicht richtig, und ich brauche Hilfe. Hier ist was passiert:
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?
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.
Tags und Links wpf clickonce authenticode