Avatar billede Lasse Novice
12. februar 2003 - 16:46 Der er 3 kommentarer og
2 løsninger

koer program hver gang et bestemt projekt kompileres

Kan man i .Net goere "et eller andet"(har ingen ide om hvad det kaldes)? Problemet er at jeg gerne hver gang jeg kompilerer mit program, vil opdatere en database med et versions nummer, + opdatere en attribute(versionsnummer) i mit installationsprogram. Begge disse versionsnumre skal opdateres til versionsnummeret af min assemblys versionsnummer.

Er det muligt vha af noget makro, eller er det helt ude i skoven dette jeg vil?
Avatar billede zyber Nybegynder
13. februar 2003 - 23:47 #1
Det eneste jeg lige kender til er at lave en cmd fil som kører et program til opdatering at din database og bagefter kompilere dit projekt, dette kan gøres ved en commandline. Jeg ved dog ikke hvordan man kompilere i commandline, men det er muligt.
Avatar billede zyber Nybegynder
13. februar 2003 - 23:50 #2
Jeg sidder selv og laver en Service som både skal stopped og afinstalleres før den kan kompileres, så der havde jeg tænkt mig at gøre det sammen, men er ikke nået frem til commandline kompileringen endnu.
Avatar billede Lasse Novice
14. februar 2003 - 00:03 #3
Ja, men det er stadig manuelt... Det skulle helst ske automatisk... i det jeg opdaterer assembly versionsnummeret, saa skal - naeste gang jeg kompilerer - mine andre versionsvariabler i de andre projekter/db opdateres.
Avatar billede nuno Nybegynder
27. februar 2003 - 15:02 #4
du kan lave et lille lytte-program, som du så skal have kørende på computeren hver gang du har .Net kørende (du kan evt. starte .NET vha. en .bat-fil, som samtidig starter det lille "lytte-program", som bruger filesystemwatch. Programmet lytter på om din fil er ændret - og hvis den er - så indsætter den noget i db.

Lidt udebugget kode som eksempel:
I class headeren:
Private WithEvents FSO As System.IO.FileSystemWatcher

Fx i Form_load:

FSO = New System.IO.FileSystemWatcher()
FSO.Path = "C:\"
FSO.Filter = "*.txt"
FSO.EnableRaisingEvents = True

        AddHandler FSO.Changed, AddressOf FSO_Changed

Derudover:

    Private Sub FSO_Changed(ByVal sender As System.Object, ByVal e As System.IO.FileSystemEventArgs) Handles FSO.Changed
        Debug.WriteLine("File: " & e.FullPath & " changed")
        'KALD AF VERSIONSCHECK OG INSERT I DB FUNKTIONALITET HER
    End Sub
tilføjet i din forms kode (eller hvordan du nu vælger at bruge det)

Så kan du evt. lave noget check på, om versionsnummeret på din dll/exe eller whatever, er ændret - og derefter indsætte i db.

Versionsnummer på fil kan du checke vha.
Dim fVersInfo As FileVersionInfo
fVersInfo = FileVersionInfo.GetVersionInfo("C:\test.txt")
Debug.WriteLine("Version : " & fVersInfo.FileVersion)

Igen - det er u-debugget - men det burde være nok til at lede dig i retning af det.

Det burde dog ikke være nødvendigt at lave et FileVersion check - da en dll eller exe vel kun ændres under normale omstændigheder ved kompilering (?).

Håber at have givet dig en idé eller 2...

/nuno
Avatar billede Lasse Novice
24. maj 2003 - 00:55 #5
nej nuno, det kan helt sikkert goeres vha scripting indeni vs.net.

Anyway, her er lidt point for svaret..
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
Kurser inden for grundlæggende programmering

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