01. juli 2010 - 22:03Der er
3 kommentarer og 1 løsning
Installation af *.msi på servere. Generelt program design.
Jeg har fået til opgave at lave et add-in til VS der skal bygge, flytte og installere projekter på servere.
Jeg er dog lidt i tvivl om hvordan jeg vil implementere installationen, og kunne godt bruge lidt consept-scope inspiration/hjælp til dette.
1 mulighed: Lave en service på serverne, der kigger efter ændringer i en mappe, og installere alle *.msi filer der bliver lagt deri. Logger til en text fil så jeg kan kontrollere at installationen er fuldført korrekt.
2 mulighed: Lave en service jeg kan kommunikere med over en form for socket forbindelse, og på den måde styre installationen og få direkte svar tilbage.
Findes der andre måder at installere en msi fil remote? Eller kan i komme på en anden mulighed?
*Der er netværksadgang til filerne fra Clientcomputerne.
Skal lige være sikker på at jeg forstår dig korrekt.
Du har skrevet noget software og lavet en .msi pakke eller hvordan?
I så fald tror jeg dit spørgsmål er oprettet i den forkerte kategori.
Jeg har arbejdet i store virksomheder, bl.a. på Syddansk Universitet hvor vi brugte SCOM fra Microsoft til at rulle alle mulige pakker ud på klienterne.
Hvis det er et VS projekt så ville jeg installere dit program via den publish feat. som du har tilgængelig og ikke bruge MSI pakker.
Det vil nemlig gøre at du kan lave releases og publicere dem til din server og når klienterne så starter applikationen, opdaterer de automatisk til nyeste version.
Men så forstår stadig ikke hvorfor du skal lave det som et Add In til visual studio. Er der en grund til at det skal være sådan?
Den funktionalitet som du efterspørger (hvis jeg da har forstået dig korrekt nu :-) ) ligger jo i Visual Studio.
Du kan jo bruge Post-build eventet i dit setup projekt til at køre et script som installerer din msi pakke på dine servere med det samme.
Alternativt skal du over og have fat i noget SCOM agtigt værktøj som koster knaster :-).
Mvh. Lasse
set MSIPATH=Temp\PROJEKTNAVN set MSINAME=Navnpådinsmssetupfil.msi set SERVERNAME=DINSERVER set SERVERPATH=\\%SERVERNAME% set DRIVE=C set FILEPATH=%DRIVE%:\%MSIPATH% set FILENAME=%FILEPATH%\%MSINAME% set UNC=%SERVERPATH%\%DRIVE%$\%MSIPATH%
if not exist "%UNC%" mkdir "%UNC%" if errorlevel 1 goto ERROR
echo afinstallerer "%FILENAME%" fra server %SERVERNAME% psexec %SERVERPATH% -w "%FILEPATH%" msiexec /uninstall "%FILENAME%" -quiet if errorlevel 1605 goto CONTINUE if errorlevel 1619 goto CONTINUE if errorlevel 1606 goto ERROR if errorlevel 1 goto ERROR
:CONTINUE echo kopierer "$(BuiltOuputPath)" til "%UNC%" xcopy /R /Y "$(BuiltOuputPath)" "%UNC%" if errorlevel 1 goto ERROR
echo Installerer "%FILENAME%" på server %SERVERNAME% psexec "%SERVERPATH%" -w "%FILEPATH%" msiexec /i "%FILENAME%" -quiet if errorlevel 1 goto ERROR goto OK
:OK echo PostBuild afsluttet korrekt for projektet
:ERROR echo PostBuild fejlede for projektet exit 1
Lavede en service til servererne, der installerer de msi pakker der bliver flyttet dertil af VS-pluginnet
Synes godt om
Ny brugerNybegynder
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.