Avatar billede perhoyer Nybegynder
23. december 2004 - 06:10 Der er 2 kommentarer og
1 løsning

Global Asembly Cashe og strong names

Yo there
Jeg udvikler pt. WebParts i C# til Sharepoint. Indtil videre har jeg ikke givet mig af med strong-naming og har  blot sat mit projekts outputpath til bin folderen på serverens wwwRoot folder.

Det har virket fint.
Nu skal jeg imidlertid af forsk. årsager lægge et par af mine parts i Global Asembly Cache og er derfor nødt til at strongname dem.

Jeg har så et forståelsesproblem omkring hvor hvad foregår. MS går af guderne må vide hvilken grund næsten altid ud fra at man har insatlleret sine udviklings værktøjer på produktionsserveren - DID I MISS SOMETHING :-).

Når jeg generer min keypair.snk - med sn.exe -k  skal jeg så gøre det på min lokal maskine og så flytte filen op på serveren på samme lokation, eller skal jeg lægge kopierer sn.exe over på serveren og skabe min keyfile der?

Og når det problem er løst - i assembly.cs skal jeg fylde noget i stedet for XXX i linien:

[assembly: AssemblyKeyFile("XXX")]

Hvad skal jeg skrive dér når jeg udvikler lokalt?

Der gives fgl ms comment i kilden:

The location of the project output directory is dependent on whether you are working with a local or web project.
For local projects, the project output directory is defined as
<Project Directory>\obj\<Configuration>

Men det er ikke fordi det tænder den store spot i mit sind

Anyone...?

Per
Avatar billede Lasse Novice
23. december 2004 - 17:21 #1
Ok jeg forstaar ikke helt problem stillingen, men maaske kan foelgende hjaelpe.

Skal du strong name din assembly, genererer du dine keys paa en vilkaarlig maskine via sn.exe -k keys.snk. Du kopierer denne fil over i dit project bibliotek paa din udviklingsmaskine. Foer du genererer(kompilerer) dine assemblies, saa skal du tilfoeje foelgende linie:

[assembly: AssemblyKeyFile("keys.snk")]

Faar du en fejl ved kompilering, er det med stor sandsynlighed fordi at kompileren ikke kan finde keys.snk.

Ok, nu har du saa kompileret din assembly og den er strong namet nu. Du skal nu tilfoeje den i GAC'en paa prod maskinen. Det kan goeres via forskellige maader, men den letteste er simpelthen ved at aabne folderen C:\WINDOWS\assembly i exploreren og drag & drop assemblien der.

Du er nu ved vejs ende ;-)
Avatar billede segato Nybegynder
24. december 2004 - 11:21 #2
Ja du skal skrive stien til din snk fil [assembly: AssemblyKeyFile("d:\\keys.snk")]
. GAC er det der i gamle dage svarede sig til at man registrede COM i regsvr32 som så lagde stien til din komponenen i regedit. Det er bare en måde til at en masse programmer kan have acces til din komponent uden at vide dens destination men blot dens navn. Der er tre måder at gøre det på. Det ene er at lægge dll sammen med exefil. Den anden er at ligge dit dl i en system folder og 3. er GAC. Det bør være lige gyldigt hvor din fil er genereret jeg hentede min fra nettet og har brugt den siden. men kan da godt være der står noge tmaskine specifikt i den også har jeg ik lige undersøgt men det er vel bare at åbne filen og kig lidt på hvad der står i den.
Avatar billede Lasse Novice
27. december 2004 - 18:25 #3
perhoyer>> Kan du bruge nogen af svarene, eller er du paa ferie ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester