Powinieneś umieścić swoją logikę biznesową w dll (s) i tylko logikę aktualizacji w exe. Za każdym razem, gdy uruchamiasz aplikację, powinna ona sprawdzać dostępność aktualizacji. Jeśli zajdzie taka potrzeba, pobierze nowe biblioteki dll i zaktualizuje jego funkcjonalność.
Dzięki temu, że dll zostanie załadowany dynamicznie, nie musisz nawet ponownie uruchamiać aplikacji, gdy wykonywana jest aktualizacja. Jeśli sprawdzisz dostępność aktualizacji po uruchomieniu pliku EXE.
Proces wewnątrz exe będzie następujący: 1. Uruchom mały exe 2. Sprawdź dostępność aktualizacji. W razie potrzeby pobierz plik dll (sll) w określonej lokalizacji dla dll (s). 3. Wczytaj pliki dll z tej konkretnej lokalizacji
Oczywiście dla ułatwienia pracy z nią nie należy zezwalać na wiele instancji, ponieważ jeśli już ją uruchomiłeś i uruchamiasz inną instancję, będziesz mieć inny przypadek obsłużyć: próbujesz dokonać aktualizacji, ale pliki, które chcesz zastąpić są w użyciu ...
Nie. Możesz wysyłać nowe pakiety lub biblioteki DLL i ładować je dynamicznie, ale nie możesz po prostu pobrać i uruchomić większość kodu w locie. To [podobne pytanie dotyczące wtyczek] (http://stackoverflow.com/q/1560878/62576) może pomóc. –
Jaki rodzaj kodu aktualizujesz? Jeśli jest to logika biznesowa (w przeciwieństwie do, powiedzmy, kodu UI), być może powinieneś rozważyć projekt, który wykorzystuje jakąś formę usług internetowych. –
Aktualizator pobiera kod i zapisuje go do ponownego użycia. Jeśli nie chcesz używać aktualizacji, ale nadal chcesz pobrać kod, będziesz musiał pobrać kod od nowa za każdym razem, gdy program będzie działał. Użytkownicy nie będą tego lubić w programie komputerowym. Jeśli zamierzasz pobrać kod za każdym razem, równie dobrze możesz napisać aplikację internetową, aby oczekiwania użytkowników były lepsze. –