Things to know about ClickOnce, Version 2.0

Frage: Werden ungeänderte Dateien beim Upgrade von Version X auf Version X+1 wieder neu von Server geladen?

Antwort: Nein. Dateien, die sich zwischen 2 Versionen nicht geändert haben, werden von der Vorversion aus dem ClickOnce Cache ("\Documents and Settings\%Username%\Local Settings\Apps\2.0) kopiert.

 

Frage: Was passiert,wenn ein Zertifikat, mit dem ein ClickOnce Deployment signiert wurde, abläuft? Wie kann man dafür noch Updates bereitstellen, wenn doch die Signatur übereinstimmen muß?

Antwort: Man benötigt ein neues (verlängertes, aber dennoch physikalisch neues) Zertifikat, dessen Public/Private Key Pair mit dem des abgelaufenen übereinstimmt. Dann wird ein Update zugelassen, es erscheint aber ein Trust Prompt, der darauf hinweist, daß es sich um ein neues Zertifikat mit der gleichen Identität handelt. Ist es ein komplett neues und beide Public/Private Key Pairs stimmen nicht überein, so wird bei Serververfügbarkeit auch die original installierte Version nicht starten, sondern eine entsprechende Meldung anzeigen, daß ein Update mit einer falschen Identität bereitliegt.

Beim "Verlängern" eines (normalerweise 12 Monate gültigen) Zertifikates bei einer öffentlichen Zertifikatsautorität wie Verisign muß der Antragsteller erneut seine Identität beweisen.

Für den Microsoft Certificate Server steht dafür ein Certificate Lifecycle Tool zur Verfügung.

 

Frage: Warum sind mit MakeCert.exe erzeugte Zertifikate nicht für die "reale Welt" bestimmt?

Antwort: "In meinem Intranet kann ich doch mit MakeCert.exe erzeugte Zertifikate verwenden, um Dinge sicherer zu machen, oder?" - Im Prinzip, ja. Allerdings kann man mit dieser Art von Zertifikaten kein Trusted Application Deployment durchführen, d.h. es wird immer ein Trust Prompt "Unbekannter Herausgeber" erscheinen, da keine Publisher-Informationen in einem solchen Zertifikat enthalten sind. Ein mit makecert.exe erstelltes Zertifikat enthält - ähnlich wie ein Strong Name File (*.snk) - lediglich ein Public/Private Key Pair. Informationen über einen Herausgeber oder ausstellende Autorität sind nicht enthalten. Will man also den Anwender nicht mit Trust Prompts quälen bzw. vermeiden, daß die Anwendung nicht läuft (man kann Trust Prompts verbieten, dann laufen nur Anwendungen von Trusted Publishern, wenn dem Herausgeber des Zertifikats ebenfalls vertraut wird), so muß man auf Zertifikate zurückgreifen, die diese Informationen enthalten.

Weitere Informationen dazu sind auf MSDN zu finden.