ClickOnce érdekességek

Összességében szeretem a ClickOnce technológiát, mert jelentősen megkönnyíti a felhasználók életét, ezért is használjuk a VIK-en a záróvizsga jegyzőkönyv program telepítéséhez. Persze nem minden esetben ez a legjobb telepítőcsomag formátum, hiszen a testreszabási lehetőségek korlátozottak, de nekünk éppen megfelel. A héten – fél év után ismét – egy új verziót publikáltam volna a programból, de belefutottam néhány érdekességbe.

Nem lehet publikálni

Az új verziót a következő módon szoktam elkészíteni: Project Properties –> Publish –> Verziószám beállítása –> Publish Wizard, mert így tudom legjobban kézben tartani, hogy mi történik. De most erre ezt az üzenetet kaptam:

Error: Cannot publish because a project failed to build.

Az Output ablakban semmi több, ennyiből kell főznünk. Hát, ha balról nem engedi a ló, hogy felszálljunk rá, próbáljuk jobbról: Solution Explorer –> jobb klikk a projekten –> Publish. Így megy, csodálatos! 🙂

Lejárt a tanúsítvány

Amikor már azt hittem, hogy sínen vagyunk és csak egy Visual Studio bugba sikerült belefutnunk, szembejött az alábbi érdekes hiba:

The signer’s certificate is not valid for signing.

Ejha, ennek a fele sem tréfa, nézzük csak meg azt a tanúsítványt. Irány a Project Properties ablak, azon belül is a Signing (nem a Publish!) fül. Íme az aláíró tanúsítvány:

clickonce-certificate

Igen, ez a Visual Studio által generált önaláírt tanúsítvány, amire nincs mentség, csak kifogások, nem volt más választásunk. Szemmel láthatóan ez valóban lejárt, tehát itt valamit tenni kell. Van ezen az ablakon egy Create Test Certificate gomb, amivel simán generálhatok új tanúsítványt, de annak következményei vannak. Először is jön ez az üzenet:

The application is signed with a different key than the existing application on the server. Do you want to overwrite it?

Amire mondhatjuk, hogy naná, de az MSDN szerint akkor bizony a régi felhasználóink nem fogják megkapni a frissítést. Ez a mi esetünkben semmiképpen sem elfogadható, más megoldás kell. Elvileg .NET 4 esetén ez már nem probléma, mégsem akartam kockáztatni.

Valahogy tehát meg kellene hosszabbítani a létező tanúsítványt, amihez a KB925521 cikkben találunk is útmutatást, egy rakás .cpp kód formájában. Cliff Stanford oldaláról letölthető egy lefordított RenewCert verzió, ami nálam a C runtime library-kre hivatkozva elszállt, de szerencsére Robin Shahan blogjában találtam egy olyan változatot, ami mellett ott állnak a szükséges dll-ek is. Ezzel egy csapásra sikerült meghosszabbítani a korábban használt tanúsítványt és gond nélkül működik a frissítés. 5 évig.

 

Advertisements

One thought on “ClickOnce érdekességek

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s