2013-01-21 16 views
6

Czy można pobrać kod i wykonać/wstrzyknąć go po uruchomieniu aplikacji?Pobieranie kodu i wykonywanie w locie

Chcę zachować moje .exe małe i up2date bez korzystania z updater.

Szukałem google od jakiegoś czasu, ale nie mogłem znaleźć niczego, co można by tylko pobrać z innych plików .exe, które zawsze uruchamiają Antivira.

+2

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. –

+0

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. –

+0

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. –

Odpowiedz

7

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 ...

4

Istnieje sposób, w jaki można uruchomić exe, wstrzykiwanie go w przestrzeni adresowej innego procesu. Ale na pewno twoje oprogramowanie zostanie oznaczone jako złośliwe oprogramowanie przez heurystyczne av.

Tutaj jest unit, który robi lewę, jeśli jesteś zainteresowany koncepcją.

+2

@ Arioch'Nie wiedzieli, że to grammar.stackexchange.com tutaj – opc0de

+1

stick.grammarexhange.org ;-) –

Powiązane problemy