Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[c#] przekompilować projekt do .exe bez .net

01 Lip 2018 12:03 441 21
  • Poziom 29  
    Witam.
    chciałbym w moim projekcie użyć zewnętrznego exe z C# ale on wymaga instalowania na docelowym komputerze platformy jak doczytałem nie jest to do obejścia w prosty sposób - irytuje mnie troszkę "wymuszanie" na kliencie instalowanie / pobieranie kilkudziesięciu MB dla prostego execa. gdzie cała aplikacja waży 1,5Mb ze wszystkim dookoła.
    znajdowałem tematy dość stare - czy na dzień dzisiejszy coś się zmieniło? może istnieje prosty sposób na przekompilowanie projektu, żeby dot neta nie potrzebował?
    ewentualnie jakie absolutne minimum trzeba zainstalować żeby zadziałało, aplikacja konsolowa odczytuje plik, przetwarza go i zapisuje.
  • Pomocny post
    Poziom 31  
    Zacznij od tego, że apka waży te 1.5Mb ze względu na to, że cała reszta jest w tej bibliotece.
    Po drugie, o ile nie używasz nic nowego warto skorzystać z niższej wersji .net zintegrowanej z systemem operacyjnym (im niżej zejdziesz, tym mniej systemów (oczywiście tylko windows) będzie wymagało instalacji np windows7 ma .net 3.5, a xp 1.1).
    Jeśli chcesz by apka działała na każdym systemie bez instalacji przejdź na java ;)
  • Poziom 29  
    moja apka w delphi cała z grafiką waży 1,5mb bez konieczności instalacji neta a ta w c# co chcę wykorzystać to ma 20kb :) ale wymaga 50mb .neta, nie wspominając o czasie instalacji 5s kontra kilka minut ;)

    Dodano po 6 [minuty]:

    drobok napisał:
    windows7 ma .net 3.5, a xp 1.1
    czy każdy xp świeżo zainstalowany ma standardowo .net 1.1 ?
  • Poziom 31  
    Nie mam zielonego pojęcia, wg msdn żaden takowego mieć nie powinien - tutaj zmyliła mnie polska wikipedia i próba czasu.
    https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/versions-and-dependencies
    Jestem pewien część oprogramowania (w tym nawet coś na płytkach dodawanych do płyt głównych) instalowało .net framework jeśli takowego nie było - musiałbyś znać co konkretnie jest na maszyanch docelowych. Ew przerzucić się na coś nei wymagającego bibliotek.
    Swoją drogą xp już nie jest wspierany, a najpopularniejszy windows7 ma .net 3.5
  • Poziom 37  
    prokopcio napisał:

    ewentualnie jakie absolutne minimum trzeba zainstalować żeby zadziałało, aplikacja konsolowa odczytuje plik, przetwarza go i zapisuje.


    Kerrighan & Ritchie C,
    jak się czepiasz, to dlaczego nie robisz w Delphi? Czyżby miał jakieś wady?


    Nie będę tu się bawił w ewangelizatora C# (analogicznie Javy), dlaczego to jest lepsze, skąd takie decyzje projektowe, co daje maszyna wirtualna (języka), bo nie za bardzo chcesz o tym usłyszeć.
    Są jakby "linkery", rodzaj pakietowania, które wytworzą dośc duży EXE zawierający pod maską cały system. Raz projekt "prawie" musiał być do tego konwertowany, ale ostatecznie nie używałem tego produkcyjnie.

    Zarazem rady o targetowaniu na framework 1.1 (nie, nie był defaultowo aktywowany dla XP), przez 2.0 są szkodliwe, poniżej 3.5 miały zmiany niekompatybilne między wersjami. Takie wybory nie mają sensu. Nawiasem mówiąc czy ktoś posiadający XP jest sensownym klientem na dziś?

    ALE!!!!
    Dla tematów linii komendy, kompatybilności pomiędzysystemowej, warto zwrócić uwagę na Net Core, obecnie w wersji 2.1 (tak, numer wersji spadł do 1.0 i rośnie) Stoi za tym nie tylko MS , ale wielkim sponsorem jest RedHat. Czy jest mniejsze od "starego pakietowania" frameworku 3.0 ... 4.5 ...6, nie wiem, sam sprawdź.
    Na tym etapie nie obiecuje kompatybilności z GUI, po prostu go nie zawiera. Coś-tam-jest o natywnych binarkach, ale nie interesowałem się.

    https://en.wikipedia.org/wiki/.NET_Framework#.NET_Core

    EDIT wydaje mi się, że wiedzę nt w/w sympatyczniej się czyta na developers.redhat niż na MSDN
  • Poziom 29  
    JacekCz napisał:
    jak się czepiasz, to dlaczego nie robisz w Delphi? Czyżby miał jakieś wady?
    jak wspomniałem to zewnętrzna aplikacja w c# (czyt. nie moja) którą chcę wykorzystać u siebie i nie mam potrzeby ( skoro już ktoś to napisał ) pisać swojej identycznej od podstaw choć widzę., że ostatecznie się na tym skończy...

    Dodano po 1 [minuty]:

    JacekCz napisał:
    Nawiasem mówiąc czy ktoś posiadający XP jest sensownym klientem na dziś?
    komputery sterujące maszynami CNC w >50% mają system XP.
  • Użytkownik usunął konto  
  • Poziom 37  
    prokopcio napisał:
    JacekCz napisał:
    jak się czepiasz, to dlaczego nie robisz w Delphi? Czyżby miał jakieś wady?
    jak wspomniałem to zewnętrzna aplikacja w c# (czyt. nie moja) którą chcę wykorzystać u siebie i nie mam potrzeby ( skoro już ktoś to napisał ) pisać swojej identycznej od podstaw choć widzę., że ostatecznie się na tym skończy...


    Nie sądziłem że sarkastyczną propozycję Delphi przyjmiesz na serio. Jeśli z eko-systemami jakiś języków są związane pewne pozycje mentalne, to z Delphi (oraz PHP) "ja to sobie napiszę lepiej od innych"...

    Teraz serio: ile czasu więcej/mniej poświęcisz, na jakie ryzyko błędów widocznych i ukrytych się nastawiasz.
    a) instalując framework
    b) pisząc w archaicznym języku (który np z NICZYM się nie daje integrować) *)

    Może w ramach protestu przeciwko pakietom kilkanaście mega zaprzestaniesz używać komputera?

    *) pozwoliłem sobie sprawdzić w historii. Wybacz. W jezyku w którym daleki jesteś od płynności. Skąd WIARA że zrobisz to lepiej?

    Dodano po 6 [minuty]:

    drobok napisał:

    Jeśli chcesz by apka działała na każdym systemie bez instalacji przejdź na java ;)


    Prawdziwą rzecz stwierdziłeś, Java jest bardzo szczęśliwie zaprojektowana, w sensie nie jest "zespawana" z systemem.

    W czasach jak serwery się migrowało z 32 na64b temat Javy EE miałem zakończony po 10 minutach, resztę nocy migrowałem microsofta na microsofta.
  • Poziom 29  
    zapytałem, czy można tak skompilować kod c# żeby nie wymagał dot neta.
    dostałem zjebkę i tysiąc innych odpowiedzi.
    elektroda spada na psy :( ( a według Was - ja )
  • Pomocny post
    Użytkownik usunął konto  
  • Poziom 37  
    z3planety napisał:
    Odpowieź jest: tak i nie.


    Jak się da, to się zrobi. Ile? To zależy.
    5 osobolat * płaca za kompetencje, na pewno koledze by zrobili.

    z3planety napisał:
    ... Nie proste trudno i często się nie udaje.


    Pewnie by się dało urobić twierdzenie (na miarę Turinga, he, he), że program pod jakąś maszynę wirtualną (JVN,.NET, Python, nawet Lua, z dynamicznym wykonaniem, refleksją (...etc) jest nieprzenaszalny na środowisko "gołe"

    Podobne pakietowanie w Javie nie daje istotnych oszczędności objętościowych, po prostu środowisko jest zapakietowane do du....go EXE, i też ma jakiś procent sytuacji, że nie chodzi. Programy do "oszczędzania" objętości np przez eliminację "pozornie" nieużywanych klas, to zabawki bez znaczenia profesjonalnego.

    (na marginesie, w odwrotną stronę: kiedyś była wielki run na interpretery C. Jak co do czego, to apostołowie tych interpreterów zaczęli się chyłkiem wycofywać, to nie łykało niczego większego stopniem skomplikowania od main() hello world, w sumie w interpreterze C nie da się nawet przekazać argumentów na sposób C)



    prokopcio napisał:
    .... żeby nie wymagał dot neta.


    A propos narzekania na elektrodę, dałeś choć jeden szczegół, pomijając emocje, DLACZEGO ten dotnet jest problemem? Jako bywalec "serwisów kompetencyjnych" chyba wiesz, że to ważne. Tu sie odsyła (i słusznie) z odp "szklana kula już nieczynna".

    Objętość na dysku? Proces instalacji i klikanie (moje domniemania - jest na to lekarstwo), WIARĘ że jest jakoby wolniejsze wykonanie?
    BO TY zrobiłeś mniejszy program, i TOBIE przeszkadza, to niestety nie jest argument.

    W racjonalnym temacie (precyzyjnie podanym) można podać jakies racjonalne rady. Umieszczają dotneta niemal w zegarkach.
    Jakość odpowiedzi Kolegów i tak przewyższa jakość Twojego pytania.

    EDIT "bezstressowe" instalowanie apki wykonanej w Delphi to ja już widziałem. Z jedyną wiedzą co się dzieje x6C27DE5B.
  • Użytkownik usunął konto  
  • Poziom 37  
    z3planety napisał:
    ...

    Jest kilka kompilatorów.

    Zależy też czego używasz - bp na mono masz mkbundle

    Bardzo jestem zaciekawiony dotnetem Core*), coś ma na ten temat - choć profesjonalne życie mnie jak na razie wiąże ze "starym" i to MS.

    *) o ile w dotnecie i języku C# bardzo dobrze "odrobili pracę domową" z analizy Javy (microsoft próbował ją wydawać), to nie odrobili w pełni lekcji w zakresie przenośności, Core 1.0, 1.1 ... 2.1 choćby w swojej numeracji to chce "powiedzieć": cofamy się nieco, aby zrobić lepiej. Jak nowy proszek do prania, stary nie był zły, ale nowy jest lepszy.
    Mono chyba utracił całą dynamikę? Nie jest tak, że developerzy wsparli Core?
  • Poziom 29  
    JacekCz napisał:
    A propos narzekania na elektrodę, dałeś choć jeden szczegół, pomijając emocje, DLACZEGO ten dotnet jest problemem?
    wystarczy uważnie czytać
    prokopcio napisał:
    apka w c# ...wymaga 50mb .neta, nie wspominając o czasie instalacji 5s kontra kilka minut

    rozumiem dla dużych aplikacji ale dla wyświetlenia "Hello World" wybacz ale nie przemówią dla mnie argumenty które
    prokopcio napisał:
    "wymuszają" na odbiorcy instalowanie środowiska dot net
    . To teraz zadam pytanie odwrotne - czy znasz jakieś malutkie "szanujące się" programy typu notatnik etc, które wymagają instalacji DOT NET ? ja nie znam.
  • Poziom 37  
    Widzę, że chcesz przerobić innych na swoją religię *), bo to nie jest dyskusja o technice (unikasz szczegółów: jakie widows, jakie liczby wchodza a grę)

    Chcesz pisać własne mini programy w języku bez żadnych zabezpieczeń? Pisz. Nawet w assemblerze, bo (podobno) tak jest najlepiej
    Chcesz (twoje oprogramowanie) uczestniczyć w integracjach, kontekstach jakie "te czasy" niosą, (a chcesz: chciałbym w moim projekcie użyć zewnętrznego exe z C#), o krótkich czasach wydania bezpiecznej wersji, to przyjmij do wiadomości jaki jest dzis stan informatyki, a nie jakiś dinozaurowaty.

    A ten przedmiotowy "Notatnik" to jakie ma możliwości integracyjne? Nawet nie umie końców linii obsłużyć. Serio go używasz?
    Dlaczego wszystkie "nieco lepsze" notepady już mają zależności i powiązania?

    Pytasz o "szanujące się programy", w czym pisze dziś szanujący się programista, aby w rozsądnym czasie dać program wysokiej jakości.

    Proponuję abyś był intelektualnie uczciwy, i nie używał programów większych niż notepad ...

    PS. ile jesteś w stanie zapłacić za owo kompilację C# do EXE, podaj w dowolnej mierze: PLN, dolary, krowy, paciorki, osobołopatodniówki.

    *) CPP jest fatalnie gorsze od C, C jest d/d i ja pisze w assemberze, Java (dodnet) jest ZAWSZE wolniejszy od C (zwłaszcza od jasia)


    Dodano po 15 [minuty]:

    UPDATE ekonomiczne:
    to ile sztuk docelowych komputerów masz zamiar obsłużyć Przy ilościach "dużych" sugeruję zainteresowanie się instalatorami (z rynku opensursowego czy MSI). Zainstalują, kawę zrobią, czas grzecznie podać z uśmiechem fakturę.
    Jaki jest target co do wersji windows?

    Choć mam głęboką intuicję, że dawno byś zainstalował na wszystkich (dwóch) komputerach

    UPDATE militarne
    Jak nie możesz wroga pokonać, to się do niego przyłącz.
    Zwłaszcza, że jednym z leaderów .net był po zmianie pracy twórca delphi.
  • Poziom 29  
    To jakiego ty używasz notepada i ile zajmuje i czego wymaga do pracy? Ja użuwam poczciwego notepad ++.
    Życzę miłego przekonywania do swoich religii, że do programów typu Hello World nie jest problemem doinstalowanie kilkudziesięciu mega..... Aj zresztą ..... Szkoda sił na walkę z wiatraczkiem....
    [c#] przekompilować projekt do .exe bez .net
  • Poziom 22  
    Poniżej dołączam plik wykonany w C przy pomocy CW v 8, waga 154 kb

    Zrodlo :
    #include <stdio.h>

    int main(void)
    {
    fprintf(stdout, "Hello Elektroda!\n");
    return 0;
    }

    Od razu zaznaczam,że nie jestem specem w temacie do Szanownego Kolegi Jacka mam duży szacunek bo widać ,że ma wiedzę ale myślę,że sprawa którą poruszył Kolega autor tematu jest istotna z punku użytkowania lub implementacji na różnych systemach.
  • Użytkownik usunął konto  
  • Poziom 22  
    Nic zdaje mnie się ,że Kolega autor szukał czegoś lekkiego więc pomyślałem ,że wkleję , chyba ta wersja co mam obsługuje tylko Mac-a i NetWare i z tego co pamiętam to daje się przekładać na różne systemy ten sam program. Ja np. róznymi sposobami kompilacji mogę ten sam program przygotować pod DOS lub Windows , ewentualnie Linux (choć przyznam ,że tego 3 jeszcze nie zrobiłem ale robiłem drobne próby)
  • Użytkownik usunął konto  
  • Poziom 22  
    Tak się akurat składa,że pracuje przy wytwarzaniu oprogramowania i mam bardzo duży program który mogę skompilować by pracował pod dosem (16 bit) lub pod Windowsami (32 bit) i nie chodzi tu o okno dos. Ten sam program w zależności od sposobu kompilacji może pracować w różnych środowiskach serwerowych czyli OES , Windows lub Linux. Mam też możliwość gdzie podczas kompilacji mogę wybrać jak program będzie działał i jak będzie wyglądał a także jakie konkretnie funkcje będzie spełniał co dla mnie jest dobrym rozwiązaniem gdyż rozwijając jeden kod źródłowy rozwijam wszystkie dostępne wersje oprogramowania.

    Jednak widzę ,że odbiliśmy trochę od tematu więc lepiej wróćmy bo Kolega Autor chciałby pewnie jakąś poradę zdobyć.

    Ja zaproponowałem CW 8.3 bo akurat taki posiadam , napisałem też do autora PW i na tym zapewne powinienem poprzestać :)


    Kolego autorze może byś powiedział cóż to za EXE ma być :)
    Bo ostatnio miałem podobny pomysł :)

    Domyślam się ,żę program "główny" uruchamia exe co ma byc bez net w pliku jest zapytanie a ten drugi w tym lub innym pliku udziela odpowiedzi.
  • Poziom 18  
    Witam zaciekawił mnie wątek, merytorycznie nie emocjonalnie, może skoro program jest tak mały i prosty to przyjąć kompromis, tzn wrzucenie na web, chociażby sama javascript, jeśli jednak ma być w c# to asp net nawet nie mvc. Ms idzie w stronę core to fakt lecz osobiście widzę przyszłość w uwp może jeszcze nie teraz ale gdy dopieszcza w Redmond topornosc integracji ze środowiskiem(czyt różnymi systemami operacyjnymi), może być miło.