Avatar billede nielsbrinch Nybegynder
08. december 2004 - 14:58 Der er 18 kommentarer og
1 løsning

Kompilering af serverens filer i stedet for webcache

Jeg sidder i en projektgruppe som arbejder på samme dll, der ligger på en fælles server som vi tilgår via FrontPage extensions. Det er en situation mange er i.

Hver gang vi kompilerer, benytter vi hver vores cachede version af projektet som ligger lokalt på vores maskine. Derfor skal vi principielt refresh projektet hver gang vi kompilerer.

Jeg forestiller mig det kan løses ved at kompilere de filer der ligger på serveren, i stedet for at kompilere éns lokale filer. Er der nogen der kender en god måde at arrangere at serveren kompilerer filerne i stedet for?

Jeg har overvejet at lægge en batch-fil op i projektet som klarer det, men det er ikke umiddelbart noget jeg ønsker.
Avatar billede burningice Nybegynder
08. december 2004 - 23:10 #1
har i tænkt på SourceSafe, CVS eller andet versionsstyring... ?
Avatar billede nielsbrinch Nybegynder
09. december 2004 - 08:20 #2
Vi bruger SourceSafe. Problemet ligger ikke i et vi ændrer på hinandens filer.

Hvis jeg ændrer i én klasse og en anden ændrer i en anden klasse, brokker SourceSafe sig jo ikke, og det skal den heller ikke. Men vi får alligevel ikke hinandens ændringer med ned på vores lokale harddiske, uden at refresh projektet.
Avatar billede burningice Nybegynder
09. december 2004 - 11:11 #3
man kan i visual studio definere nogle commandoer den skal køre inden at selve compileringen går igang. Heri burde du kunne udføre en automatisk refresh af projektet igennem SourceSafe.

Jeg tror ikke det er helt så nemt at compilere de filer der ligger i SourceSafe. Nu har jeg godt nok aldrig selv leget med ligepræcis SS, men jeg ved fra CVS, at der har filerne sjove navne og indeholder alle versionerne. Dvs. at for at kunne lave en automatisk snapshot har jeg måtte lave en script der laver en checkout til sit eget lokale kopi og derefter kompilere. Så du kan godt se, at trin man skal igennem er det samme om du kompilerer lokalt eller på serveren.
Avatar billede nielsbrinch Nybegynder
09. december 2004 - 11:15 #4
Det er de filer der ligger på serveren der skulle kompileres. De bliver opdateret hver gang en bruger gemmer, uafhængigt af Source Safe.
Avatar billede nielsbrinch Nybegynder
09. december 2004 - 11:20 #5
Refresh tager tid, det ville være træls at skulle vente på hver gang. Men hvor skulle jeg angive det, hvis det var?
Avatar billede burningice Nybegynder
09. december 2004 - 11:34 #6
hvis de bliver opdateret ufhængigt at sourcesafe, er der så ikke fare for at man kommer til at overskrive hinandens arbejde?
Avatar billede nielsbrinch Nybegynder
09. december 2004 - 11:35 #7
Nej, for man kan kun ændre i en fil, hvis der ikke er en anden der sidder og ændrer i den. Man kan altså godt gemme to forskellige filer, uafhængigt af hinanden og uden hinanden får ændringerne, og når man så kompilerer, overskriver man hinandens dll'er.
Avatar billede burningice Nybegynder
09. december 2004 - 11:36 #8
men bortset fra det, så gøres det under

Common Properties>Build Events>Pre-build Event Command Line

under egenskaber for dit projekt
Avatar billede burningice Nybegynder
09. december 2004 - 11:38 #9
jeg sidder lidt og undrer mig over, hvad i overhovedet skal bruge sourcesafe til. Drop det, flyt jeres filer over på et netværksdrev som alle har adgang til, rediger jeres projekt til at pege dervover i stedet, og vupti... så arbejder i alle på nøjagtig de samme filer.
Avatar billede nielsbrinch Nybegynder
09. december 2004 - 11:39 #10
Men så risikerer vi at sidde og ændre i de samme filer.

Vi bevæger os lige så stille væk fra emnet :-)
Avatar billede nielsbrinch Nybegynder
09. december 2004 - 11:41 #11
Under Common Properties har jeg
-> General
-> Web Settings
-> Designer Defaults
-> References Path

Jeg benytter VS.NET 2003
Avatar billede burningice Nybegynder
09. december 2004 - 11:44 #12
men hvis den risiko findes, så kan jeg ikke forstå hvorfor at i har et lokalt kopi udenom SourceSafe. Der forefindes jo også den risiko, at der bliver ændret i samme filer og nogle ændringer går tabt.

Well, som jeg ser det, så er der to muligheder:

Lav automatisk refresh når du skal til at kompilere på klienten
Lav et automatisk job der udføres på serveren... måske en gang i timen. Dette job skal lave et automatisk refresh fra SourceSafe, kompilere filerne og lægge dll'en ned i den rigtige mappe.
Avatar billede burningice Nybegynder
09. december 2004 - 11:47 #13
oh... det er et webproject... ja, det burde jeg have sagt mig selv

" der ligger på en fælles server som vi tilgår via FrontPage extensions"

Har i ikke adgang via fileshare? Personligt afskyer jeg webprojekter, og opretter altid et Class Library, tilføjer reference til System.Web og vupti... alle fordelene ved VS.Net, men ulemperne ved webprojekt er væk.
Avatar billede nielsbrinch Nybegynder
09. december 2004 - 11:59 #14
I ethvert webprojekt laver Visual Studio en lokal kopi af det der er på serveren. Det er ikke noget vi vælger. Men filerne ændres kun gennem Visual Studio, og kun hvis Source Safe tillader det - så der er ikke noget problem med at vi ændrer i hinandens filer.

Jeg er bange for ingen af de to muligheder du har opstillet, kan bruges - men jeg vil arbejde videre med tanken om at tilgå nøjagtig det samme projekt via fileshare. Det er i hvert fald en idé - det er bare ikke altid man kan antage at man kan få fileshare-adgang.
Avatar billede burningice Nybegynder
09. december 2004 - 17:43 #15
mig bekendt kræver VS.Net 2003 shareaccess... det blvier ændret i 2005 som også understøtter adgang via ftp.

Ja, jeg er godt klar over at VS.Net cacher filerne, og at de kun ændres på serveren vis SourceSafe tillader det.

Men du siger

"Det er de filer der ligger på serveren der skulle kompileres. De bliver opdateret hver gang en bruger gemmer, uafhængigt af Source Safe."

Hvilke filer er disse, som ændres uafhængigt at SourceSafe?

Vi kan da godt blive enige om at der findes

1) et kopi af filerne i selve SourceSafe
2) et lokalt kopi på hver klient som bliver ændret på klienten, og så opdateret i SourceSafe
3) ?? hvor kommer det tredie kopi af filerne fra?
Avatar billede nielsbrinch Nybegynder
10. december 2004 - 09:07 #16
Den ligger direkte på serveren - ikke i SourceSafe. Og de filer bliver opdateret bare man gemmer (eller kompilerer), også selvom SourceSafe-kopien ikke er blevet opdateret.
Avatar billede burningice Nybegynder
10. december 2004 - 11:23 #17
hmm... det var da et underligt system... har aldrig selv brugt SourceSafe, bruger kun CVS, men umiddelbart virker det lidt underligt... må være svært at holde styr på hvad ligger hvor og hvornår... men nevermind :)

har du fileshare-access til de filer? i så fald er det jo bare at lave en build af dem igennem vs.net, istedet for den lokale kopi af dine filer.
Avatar billede nielsbrinch Nybegynder
04. januar 2005 - 12:02 #18
Tak for snakken, cyberfessor. Læg et svar.
Avatar billede nielsbrinch Nybegynder
15. januar 2005 - 15:35 #19
ok, så lukker jeg selv.
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