Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

C#: Anwendung Portable machen

Empfohlene Antworten

Veröffentlicht

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?

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

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" ?

.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

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

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.

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.

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

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.

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.