Arghh... még most sem hiszem el ezt a dolgot, annyira durva. 2 teljes napot szívtam az alábbi problémával:
Adott egy nagy project, amiben az assemblyket signolják, de mi csak public key-t kapunk persze, úgyhogy ahhoz hogy használni tudjuk (debug, futtatás), be kell tenni az sn.exe-vel a Strong Name Verification Skipping List-be a megadott public keyt. Ezzel nincs semmi gond. Írtam egy pici toolt, ami reflectionnal megnyitja a neki megadott assemblyt, ez 1 sor kód. Ennyi az egész, és nem működik. És 2 napomba telt rájönni, és most morálisan a padlón vagyok, és haza akarok menni. És nagyon utálom a Microsoftot. A kapott hibaüzenet mindössze annyi, hogy "Strong name verification failed", és semmi egyéb.
Leírom a megoldást is, hátha valaki olvassa, és segít neki. Igen egyszerű; az sn.exe-nek 2 verziója van, egy 32bitre, és egy 64bitre. Eddig ez még nem gond... csakhogy a 2005-ös Visual Studio SDK alkönyvtárában csak a 32bites van. És mivel eddig ez nem volt issue, én nem tudtam róla, hogy sn.exe-ből van másik is. Egy eldugott totál másik folder mélyén "Microsoft SDKs/Windows/v6.0/Bin/x64/" van egy máááásik sn.exe, ami szintén nem jelzi hogy ő 64bites lenne, de azért az 64bites. És az már jó helyre regisztrál.
Tehát a gond az volt, hogy az általunk fejlesztett progi 32bites. Én beírtam az sn-nel a verification skipping-et, mint kiderült csak 32 bitre, de amikor csináltam egy új pici commandline toolt, akkor már nem 32bites exe készült, hanem AnyCPU, ami fordításnál megnézi hogy milyen a gép, és 64bites exe-t készít. Amikor ezzel Reflection-t akarok használni, akkor ő a 64bites listát nézi, amiről nem is tudtam, hogy létezik.
Persze, én vagyok a hülye, de könyörgöm, miért vannak a következő dolgok:
- Az sn.exe miért nem szól hogy ő 32bites vagy 64, ha ez számít?
- VS2005 alatt miért CSAK a 32bites cuccok vannak az SDK alatt?
- A VS2005 64 bites command promptja (mert ilyen is van ám!) miért a 32bites sn.exe-t indítja el???? ( ez a legfájóbb)
Szóval most arghh... van. 2 napot szívtam ezért a tudásért.