C# winform rebuild solutions
2019-07-02T21:05:15+02:00
2019-07-02T21:57:01+02:00
2022-08-11T13:30:31+02:00
Middani
Sziasztok!

(visual studio/c#/WinFormApp)
Még nagyon basic szinten vagyok ezen a területen, ezért egy olyan kérdésem volna, hogy winform applikáció közös meghajtón hogyan frissíthető, ha folyamatosan használják?
Kerültek bele új funkciók, azonban ha bármely felhasználónál fut, a “rebuild solutions”-el nyilván nem megoldható.
Installer, felhasználók kizárása valahogy...?

A válaszokat előre is köszönöm mindekinek!
Mutasd a teljes hozzászólást!
Szia!
Azt semennyire sem tartom jó megoldásnak, hogy a VS egyből oda fordítson, ahonnan a felhasználók futtatják. Egyrészt ott van az a probléma, amiről te is írtál, de hogy fogod tesztelni az alkalmazást? Gondolj bele, lefordítasz egy félig kész programot és majd azt fogják futtatni?

A te problémádra közvetlen megoldás nem létezik (épp futtatott állomány sosem lesz felülírható), de kikerülhető. Én ezt úgy csináltam, hogy két program van:
1. Van egy betöltő alkalmazás, ami annyit csinál, hogy egy megfelelően megadott hálózati elérési helyről letölti a lokális gépre a program állományait, majd elindítja azt.
2. Valamint van az éles alkalmazás.
Így a friss verziót csak a hálózati megosztásra kell felmásolnod, a felhasználók pedig, amikor legközelebb indítják a program betöltő alkalmazását, az automatikusan le fogja frissíteni az alkalmazást.
Nem mellesleg lesz a lokális futtatásnak még egy hozadéka: a dotnet (illetve Windows op. rendszer) alapbeállításai mellett nem enged a programnak dll-t betölteni hálózati meghajtóról. Ez a viselkedés felülbírálható, de ez több felhasználónál már macerás lehet. De ha a program mindig lokális másolatból fut, ilyen gond nem lesz.

Gábor
Mutasd a teljes hozzászólást!

  • Nagyon fapados megoldás, de kevés felhasználó esetén működik: megkéred őket, hogy lépjenek ki a programból arra az időre, amíg frissíted az exe-t

    Vagy nem közös meghajtóról kell használni, hanem mindenkinek ott van felmásolva a saját gépére, a lokális meghajtón az alkalmazás.
    Mutasd a teljes hozzászólást!
  • Még egy gondolat a lokális meghajtón lévő programhoz: amikor a felhasználó belép a Windowsba, akkor le lehet futtatni egy login scriptet (pl. ütemezett feladat vagy Group Policy beállítás segítségével), ami egy fájlszerverről felülírja a user gépén lévő programverziót, vagy több program esetén akár a verziókat.
    Mutasd a teljes hozzászólást!
  • Sajnos elég sok felhasználós, valamint rendszergazdai jogosultságom nincs.
    A saját ötlet egy 2 külön appból álló csomag volt, amiben az első frissíti a másikat a hálózatról, majd indítja.
    Azonban ez elég fapados megoldás.
    Mutasd a teljes hozzászólást!
  • Szia!
    Azt semennyire sem tartom jó megoldásnak, hogy a VS egyből oda fordítson, ahonnan a felhasználók futtatják. Egyrészt ott van az a probléma, amiről te is írtál, de hogy fogod tesztelni az alkalmazást? Gondolj bele, lefordítasz egy félig kész programot és majd azt fogják futtatni?

    A te problémádra közvetlen megoldás nem létezik (épp futtatott állomány sosem lesz felülírható), de kikerülhető. Én ezt úgy csináltam, hogy két program van:
    1. Van egy betöltő alkalmazás, ami annyit csinál, hogy egy megfelelően megadott hálózati elérési helyről letölti a lokális gépre a program állományait, majd elindítja azt.
    2. Valamint van az éles alkalmazás.
    Így a friss verziót csak a hálózati megosztásra kell felmásolnod, a felhasználók pedig, amikor legközelebb indítják a program betöltő alkalmazását, az automatikusan le fogja frissíteni az alkalmazást.
    Nem mellesleg lesz a lokális futtatásnak még egy hozadéka: a dotnet (illetve Windows op. rendszer) alapbeállításai mellett nem enged a programnak dll-t betölteni hálózati meghajtóról. Ez a viselkedés felülbírálható, de ez több felhasználónál már macerás lehet. De ha a program mindig lokális másolatból fut, ilyen gond nem lesz.

    Gábor
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd