08. december 2004 - 14:58Der 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.
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
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.
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.
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.
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.
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.
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.
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.
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?
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.
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.
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.