2013-12-19 6 views
6

Ich möchte eine Anwendung erstellen, die einfach zu installieren ist. Der Installationsprozess ist ziemlich komplex (viele Berechtigungen, Firewall-Regeln, Dienste usw.). Also entschied ich, das Setup-Programm in C# (.net 4) zu schreiben, und dann das Setup-Programm selbst eine Click-Once-Installation zu machen.Warum sagt meine signierte, einmal aufgerufene Anwendung, dass sie einen unbekannten Herausgeber hat

Die Idee war, dass der Benutzer auf die Website gehen würde, klicken Sie auf installieren, mein Setup-Programm würde auf ihrem Computer installiert werden durch einmal klicken, und dann würde es laufen, Einrichten des Hauptprogramms.

Um dies zu einem einfachen Prozess zu machen, musste ich natürlich alle ausführbaren Dateien signieren. Ich kaufte ein Zertifikat Comodo Code-Signing, installierte es in meinem Zertifikatspeicher und abgehakt „Sign das Click manifestiert Once“ in VS Express 2012. Ich habe auch einen Post-Build-Schritt, der lief

SIGNTOOL.EXE sign /f TrumphurstCodeCertificate.pfx /p <my password> TimeClockSetup.exe 

ich alles gereinigt meines Build-Ordners und der Bereitstellungswebsite und führte einen sauberen Build aus.

Ich überprüft die Eigenschaften der ausführbaren Datei im Build-Ordner, und es wurde wie von mir veröffentlicht angezeigt.

Ich veröffentlichte das Programm auf der Website, startete einen anderen Windows 8 Computer, navigierte auf die Website und klickte auf die Schaltfläche Installieren.

Ich wurde aufgefordert, Do you want to run or save setup.exe, und ausgewählten Lauf.

Dann wurde ich aufgefordert, setup.exe is not commonly downloaded and could harm your computer - Ich klickte Aktionen, und es sagte This program might harm your computer. Es hieß, der Verlag sei Trumphurst Ltd und gab mir die Option, trotzdem zu laufen, worauf ich klickte.

Dann habe ich "Open File - Security Warning", for ".....\TimeClockSetup.exe", "Publisher: Unknown Publisher".

Wie kommt die exe als Unknown publisher?

Ich schaute auf die exe im Benutzerdatenverzeichnis, in dem es installiert worden war, und keine Registerkarte "Digitale Signaturen" im Dialogfeld Eigenschaften angezeigt.

Wenn ich jedoch zu der Exe in meinem Build-Ordner browse, hat es eine Signatur.

[Später] Ich erinnere mich irgendwo lesen, dass einige Teile des Build oder Publish-Prozess die EXE-Datei im Obj-Ordner verwenden, anstatt die im Build-Ausgabeordner, so dass ich Signieren, dass die Post Build-Schritte hinzugefügt machte keinen Unterschied.

+0

Danke für die Bearbeitung, wer auch immer Sie sind, wusste ich nicht über Backquotes. –

+0

Wenn nur Backticks nur auf Quellcode arbeiteten, wofür sie bestimmt sind.Beim Inline-Quoting (insbesondere bei Text, der Anführungszeichen enthält) bevorzuge ich _italics_ oder __bold__. – groverboy

+0

@NikkiLocke, ich weiß, dass es ein bisschen spät ist, aber Sie können weitere Formatierungshilfe auf der [Abhackhilfe] (http://stackoverflow.com/editing-help#comment-formatting) Seite finden. – Sheridan

Antwort

5

Sie müssen ein Authenticode-Zertifikat für Ihre Entwicklungsfirma (oder Sie selbst) erwerben und die Anwendung signieren. Um zu unterschreiben, sehen Sie sich die Eigenschaften Ihres Projekts an und gehen Sie in die Kategorie "Signieren". Wählen Sie "Unterschreiben" und Sie können Ihr Zertifikat auswählen, mit dem Sie sich anmelden möchten.

Stellen Sie sicher, dass dies nur das Stammzertifikat ist, oder VS es nicht verwenden kann. Außerdem muss der Endbenutzer den vollständigen Zertifikatspfad installiert haben, damit der Computer Sie als vertrauenswürdigen Herausgeber erkennt.

Wenn Sie Ihr Zertifikat von Ihrem Computer mit dem vollständigen Zertifikatspfad exportieren, können Sie diese Datei auf den Clientcomputer verschieben und das Zertifikat sowohl im TrustedPublishers- als auch im Root-CA-Speicher installieren.

+0

Sehen Sie sich den zweiten Teil an, in dem der Benutzer den vollständigen Zertifikatspfad für die Stammzertifizierungsstellen und die Trusted Publisher-Speicher installieren muss. – ps2goat

+1

Unterscheidet sich ein Authenticode-Zertifikat von einem Comodo-Code-Signaturzertifikat? –

+0

Danke. Wie auch immer, ich habe das Zertifikat mit "Alle Zertifikate einbeziehen" nicht aktiviert und es in den Eigenschaften zur Registerkarte "Code-Signatur" hinzugefügt. Jetzt wird die App als signiert angezeigt. Ich möchte immer noch wissen, warum signtool nicht funktioniert. Der entscheidende Punkt beim Kauf des Comode-Zertifikats besteht darin, dass Benutzer Sicherheitswarnungen NICHT überschreiben oder unbekannte Stammzertifikate installieren sollten. –

Verwandte Themen