Zum Inhalt springen

C#: Anwendung Portable machen


Empfohlene Beiträge

Geschrieben

Hallo Leute, ich bin jetzt etwas entnervt.

Nachdem ich schon zig Stunden gegoogelt hab,

frage ich euch. Vielleicht weiß jemand von euch weiter.

ich hab ein Programm mit dem Visual Studio 2005

(Programmiersprache c#) erstellt und will dieses Portable

machen. Sprich ich will, das es OHNE dem .NET-Framework 2.0 auskommt.

So nach dem Motto: Einfach nur auf USB-Stick kopieren, starten, fertig !

Weiß jemand von euch, wie ich das mache?

Geschrieben

Dafür sind .NET Programme nicht ausgelegt, genausowenig wie Du Javaprogramme ohne Virtual Machine laufen lassen kannst. Macht auch überhaupt keinen Sinn, das Framework wird in allen neuen Windows Versionen standardmäßig mitinstalliert und in ein paar Jahren wirst DU praktisch keinen Rechner finden, auf dem es nicth installiert ist, allein schon weil es mit irgendeiner zukünftigen Anwendung sowieso mitinstalliert würde^^

Wenn Dir das Framework 2.0 zu groß ist, um es mit Deiner Anwendung mitzuliefern bleibt dir ja immenroch das 1.1er Framework, das is nur halb so groß, oder Du nimmst direkt das Compact Framework, das hat auch nur 25 MB.

Du kannst Deine .NET Anwendungen vom USB Stick starten, sobald das Framework installiert ist ;)

Alternativ kannst Du natürlich auf VB +Runtime oder C++ +Runtime zurückgreifen, da musst Du dann vorher kein .NET installieren.

MfG

Markus

Geschrieben

hallo, erstmal danke für eure antworten.

Jetzt jedoch noch ne Frage, laut dem Konzept von

.NET ist doch keine Registrierung der DLLs mehr nötig.

Was ja bei ActiveX erforderlich war. Oder irre ich mich da?

Wenn Nein, könnte ich dann nicht einfach die DLLs, die mein

Programm benötigt, in das Programm-Verzeichnis kopieren,

anstatt das ganze .NET auf meinem USB-Stick "mitzuschleppen" ?

Geschrieben

.NET Programme werden nicht direkt von Windows geladen, darum kümmert sich die CLR, jeder Start einer .NET .exe Datei wird automatisch an die CLR weitergeleitet, welche dann die entsprechenden DLLs lädt, hinundwiedermal den JIT Compiler anschmeißt um den IL-Code in Maschienencode zu übersetzen und eben Den .NET Code ausführt.

Um Deine Frage kurz und knapp zu beantworten, nein, das geht nicht.

Bei ActiveX (COM) wurden dlls registriert, damit Du eine DLL in vielen Anwendungen verwenden kannst, egal in welcher Sprache diese geschrieben wurden, z.B. kannst Du mit VB oder mit C++ alle ActiveX DLLs verwenden, die Excel API wäre eine davon.

Bei .NET ist dies deutlich einfacher, solange es sich um .NET Programme handelt, die die .NET DLLs verwenden sollen, genügt es sie in den GAC zu kopieren. Willst Du .NET DLLs z.B. mit VB6 oder C++ verwenden, dann musst Du sie mit regasm genauso wie früher bei nativen Anwendungen mit regsrv32 registrieren.

Sollen die DLLs nur von deiner Anwendung verwendet werden, dann genügt es (heute in .NET, wie auch früher bei native Code) die Dateien im gleichen Verzeichnis abzulegen wie Deine Anwendung.

MfG

Markus

Geschrieben

Hi,

es gab für .NET 1.0/1.1 mal ein Tool das alle nötigen Dateien in die .NET EXE gelinkt hat, damit würde das gehen, sowas gibts für Java auch. Leider ist mir der Name entfallen. Allerdings gibts dann natürlich keinen Support mehr von MS. Prinzipiell hast du die falsche Sprache gewählt wenn du das Framework nicht installieren willst.

Gruß,

Manu

Geschrieben

welche Sprache hätte ich denn dann nehmen sollen?

C++ oder hätte ich auf .NET komplett verzichten müssen??

mich irritiert das nur alles ein bisschen, da es das programm

keypass portable auf portableapps.com gibt, welches

auch mit dem .NET Framework geschrieben ist, allerdings

problemlos auf Rechnern ausgeführt werden kann, die kein .NET-Framework

haben.

Geschrieben
welche Sprache hätte ich denn dann nehmen sollen?

C++ oder hätte ich auf .NET komplett verzichten müssen??

Wenn du ohne Framework auskommen willst, ja.

Du musst übrigens zwischen C++ und C++.NET bzw. C++/CLI unterscheiden, das sind zwei paar Schuhe.

Letztendlich braucht fast jede Sprache eine Laufzeitumgebung, aber nicht alle sind gleich groß, manche sind sowieso schon weit verbreitet, und manche sind gleich beim Betriebssystem dabei.

mich irritiert das nur alles ein bisschen, da es das programm

keypass portable auf portableapps.com gibt, welches

auch mit dem .NET Framework geschrieben ist, allerdings

problemlos auf Rechnern ausgeführt werden kann, die kein .NET-Framework

haben.

keepass ist ein MFC-Programm. Kein .NET.
Geschrieben

Ja, du kannst auch Visual Basic 6 nehmen, Delphi, C++. Im Prinzip fast alles was einen Compiler und einen Linker hat, da kannst du (fast) immer die nötigen Bibliotheken und Runtimes zu der EXE dazu linken.

Gruß,

Manu

Geschrieben

hmm..

hab jetzt nicht explizit nachgeschaut, aber aus eigener Erfahrung weiß ich,

das es ja in .NET noch möglich ist MFC-Anwendungen zu machen..

halt nur in C++ (klaro MFC gibs ja auch nur in C++)

hmm.. blöd. Jetzt hat sich portable wohl für mein Progrämmchen

erledigt. Es seidem, ich mach noch ne PDA-Version draus, oder

mach das komplette Programm in C++ MFC neu.. *schauder*

Schade aber gut, was will man machen. Danke für eure Antworten.

Das Thema ist damit eigentlich auch schon erledigt.

Geschrieben
hab jetzt nicht explizit nachgeschaut, aber aus eigener Erfahrung weiß ich,

das es ja in .NET noch möglich ist MFC-Anwendungen zu machen..

Vorsicht. Du wirfst da offenbar .NET (Entwicklungsplattform) und Visual Studio .NET (Entwicklungsumgebung) durcheinander.

Mit letzterer kannst du auch nicht-.NET-Programme schreiben, z.B. mit MFC. Das ist dann aber nicht "in .NET", wie du es nennst.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...