Exe hozzáadása referenciaként program futása közben

Exe hozzáadása referenciaként program futása közben
2019-12-17T21:26:37+01:00
2019-12-21T12:09:17+01:00
2022-10-15T21:26:02+02:00
hmmulder
Sziasztok!

Olyan problémám lenne, amire a gugli által nem találtam megoldást, hogy 1 projektben vagy 2 exe (A és B) fájl és az egyik exe-ből (B-ről) hivatkozok a másik exe-re (A-ra) (referenciák közé hozzáadtam).
Új projektet kezdtem el (C exe) és ott a B exe-t szeretném újra felhasználni és ha lehet nem lemásolni a B exe-t.
Ha a B exe-hez hozzáadom a C exe-t is a referenciákhoz, akkor a C exe-t bemásolja az A és B exe-k mellé. Erre egyrészt nincs szükségem, másrészt, ha a C exe-t nem viszem magammal, akkor a B exe nem hajlandó elindulni. És fordítva: Ha B és C exe-ket viszem el, akkor A-ra nincs szükségem és feltételezem (nem próbáltam ki), hogy akkor azért nem fog elindulni a B exe, mert az A exe nincs ott a mappában.
Van rá megoldás, hogy futás közben tudja hivatkozni a B exe-ből mindkettőre (pl: levizsgálom, hogy melyik exe van ott és azt csatolom be referenciaként futásidőben?)
Illetve A és C exe-ben lenne olyan metódus, amit B exe-ből hívok meg.
Remélem érthetően írtam le.
És ha lehet akkor dll-ekkel is szeretném ezt az esetet elkövetni, de ez másodlagos.

A válaszokat és a segítséget előre is köszönöm!
Mutasd a teljes hozzászólást!
Szerintem egy kicsit nagy fába vágtad a fejszét, ez irányban nézz szét.
Mutasd a teljes hozzászólást!

  • Megnézem, köszönöm!
    Mutasd a teljes hozzászólást!
  • .NET-ről van szó, jól sejtem?

    Olyan érzésem van, mintha itt nagyon el lett volna szúrva valami. Valószínűleg azért kell neked EXE reference-ként, mert nem lettek megfelelően elszeparálva a kód egyes rétegei. Azzal kezdeném, hogy refaktorálnám a kódot és elkülöníteném az üzleti logikai réteget egy saját assembly-be, a szállítási réteg pedig maradna az EXE-ben. És akkor nem a komplett EXE-t kell reference-ként hozzáadnod, hanem elég lesz csak az üzleti logikát tartalmazó DLL-t.
    Mutasd a teljes hozzászólást!
  • Igen, .NET (pedig beállítottam és most nem látom, hogy írja :/ )
    Az exe-ben a Form saját dolgai vannak és érhetőek el, a dll-be pedig amit ki lehetett "szervezni". Van 1 metódus, amit meg akarok hívni egy másik exe-ből, hogy létre jöjjön 1 fájl a legfrisebb infókkal, ezt viszont nem tudom az exe-ből kiszervezni jelenleg. És máshova sem nagyon tudom rakni, mert nem érek el mindent, ha máshova rakom.
    Viszont, ha másik exe-t is berakok referenciaként, akkor vagy nem indul el, ha ez utóbbi hiányzik, vagy az is kell, amire abban a projektben nincs szükség, csak a másik projektben.
    Mutasd a teljes hozzászólást!
  • Az exe-ben a Form saját dolgai vannak és érhetőek el, a dll-be pedig amit ki lehetett "szervezni". Van 1 metódus, amit meg akarok hívni egy másik exe-ből, hogy létre jöjjön 1 fájl a legfrisebb infókkal, ezt viszont nem tudom az exe-ből kiszervezni jelenleg.

    Ez nyilvánvaló, ha egy assembly-t (legyen az DLL vagy EXE) hozzáadsz egy projekthez, akkor annak ott kell lennie mellette. Vagy nem adod hozzá, és reflection-t használva töltöd be és éred el. Szerintem egyszerűen csak nyeld le, hogy ott van mellette az EXE, elvégre mindkét megoldás gányolás, és az EXE mellémásolása jár a legkisebb fájdalommal.

    De nagyon gyorsan elkezdeném a refaktort, mert mint látod, ez egyre csak rosszabb lesz. Hogy volt ez a kód unit tesztelve egyáltalán?
    Mutasd a teljes hozzászólást!
  • 2 exe.t nem szeretnek odamasolni. 2 kulon program 1 mappaban? Hat :/
    Kezi teszteles volt. Mas nem.
    Mutasd a teljes hozzászólást!
  • 2 kulon program 1 mappaban? Hat :/

    Off: ne nézz szét a c:\windows\system32 könyvtárban, mert ott nem hogy kettő, de talán még háromnál is több program van!

    On: ha a rendszered futása során két (vagy több .exe indítja egymást, akkor miért gond az, hogy két (vagy több) .exe alkotja a rendszeredet?
    Mutasd a teljes hozzászólást!
  • Azt tudom, több, mint 10 évig voltam rendszergazda, és local user supportos. Egyedül vittem 250 gépet. Hobbiként fejlesztek pár éves tapasztalattal.
    Ami nem kell, azt nem szeretném oda rakni. Új projekt (program), ami a másikkal nem dolgozik együtt, így nem kell, feleslegesnek tartom (és nem is szép). A jelenlegi megoldásomnál verziókiírás miatt hívom meg a különálló fő fájlokat a közösből. De 2 külön programról van szó, és csak a közös részt használnám.
    Remélem érthetően írtam le :)
    Mutasd a teljes hozzászólást!
  • Elsősorban azt kellene eldöntened, hogy a C használja-e a B-t (vagyis C-nek függősége a B), vagy éppen fordítva. A topiknyitó hozzászólásodban valahogy mind a kettő benne van:

    #1. Új projektet kezdtem el (C exe) és ott a B exe-t szeretném újra felhasználni

    #2. Ha a B exe-hez hozzáadom a C exe-t is a referenciákhoz

    A #1 azt jelenti, hogy C használja B-t; a #2 pedig azt, hogy B használja C-t.
    Mutasd a teljes hozzászólást!
  • A az egyik program, amit fejlesztgetek, B az update, és C az új program, amit fejleszteni szeretnék. És tervben van az automatikus frissítés. Ami miatt lekódoltam, hogy a verziószámok mindig friss verziót mutassanak. De az update-be referenciaként berakva tudom meghívni azt a metódust, ami lefuttatja a verzió kiolvasást. De a programokból is futtatható alapból az update.
    Vagy ha van más mód dll-eken keresztüli verzió kiolvasásra, úgy hogy a főprogramok mind használnák a dll-eket (oda-vissza referencia hivatkozás, amit nem enged a VS).
    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