Kompatibilitätsprobleme

Hallo zusammen,

ich habe vor einigen Wochen ein winziges C# Programm (8k) geschrieben, welches spezielle Textdateien verarbeitet. Auf meinem Computer funktioniert es auch einwandfrei. Allerdings sollte es auch auf den Computern von meinen Kollegen laufen. Ein Kollege hat wie ich selbst Net 2.0 installiert, jedoch bricht das Programm immer ab. „Wird auf Grund einer ungültigen … beendet; Fehlerbericht senden“. Wenn wir das Programm bei ihm auf dem PC kompelieren funktioniert es. Die einzige using Klausel neben System.IO ist noch System.Globalization, da ich diese für STRING-Vergleiche benötige. Wir haben auch versucht das Programm auf einem Rechner ohne NET 2.0 zum laufen zu bringen. Das Betriebssystem verlangt dann nach den DLL’s „mscoree.dll“ und „mscorees.dll“, die ich einfach nach System32 kopiert habe. Jedoch möchte das Betriebssystem nun noch die entsprechenden Registries haben, woran ich bis jetzt scheitere.
Wahrscheinlich denkt Ihr jetzt Mensch ist der blöd…

Allerdings habe ich mir die Sache ganz anders vorgestellt, ich finde es schon ein Unding über 80MB an NET zu installieren um ein winziges Programm von 8k auszuführen, dass wirklich nichts außergewöhnliches macht. Meine Officepaket muss ich ja auch nicht vorher kompelieren.
Gibt es eine Möglichkeit das Programm so zu kompelieren das alles nötige dazu enthalten ist? Also eine echte Stand-alone EXE-Anwendung, die ich meinen Kollegen zur Verfügung stellen kann.

einfach beim erstellen auf Projekt veröffentlichen, dann bekommt man ne feine Setup.exe, die automatisch fehlende klassen (ich hatte das problem damals mit J# und redistributable) aus dem internet nachlädt und installiert

einfach beim erstellen auf Projekt veröffentlichen, dann
bekommt man ne feine Setup.exe, die automatisch fehlende
klassen (ich hatte das problem damals mit J# und
redistributable) aus dem internet nachlädt und installiert

Hallo Mathias,

vielen Dank erst einmal an dieser Stelle für die schnelle Antwort. Jedoch könntest Du mir mit Deiner Hilfe ein wenig auf die Sprünge helfen. Ich selbst würde ich als Anfänger bei C# einordnen, zudem verwende ich als IDE SharpDevelop. Mit dem Tipp des veröffentlichens kann ich noch nicht so viel anfangen, da ich nicht weiß wie ich das bewerkstellige. Zu meiner Schande muss ich auch gestehen das ich mich mit der IDE noch nicht sehr gut auskenne, ich verwende sie vielmehr als Editor mit Syntaxhervorhebung und integrierten Kompiler.

Hallo!

Die letzte Frage zuerst: Es gibt wohl irgendwo im Netz eine Firma, die eine Anwendung anbietet, die „standalone“-Anwendungen aus .NET Executables baut - kostet aber einerseits wohl richtig Kohle und andererseits habe ich auch noch nichts gehört, wie gut es funktioniert.

Für die Diskussion „wenn ich .NET Programme laufen lassen will, dann muss ich ja das .NET Framework installieren“ (dessen Runtime übrigens ca. 20MB groß ist und nicht 80) bist Du etwa 5 Jahre zu spät dran - das war mal in den Anfangszeiten von .NET aktuell, mittlerweile haben die meisten eingesehen, dass die Funktionalitäten, die vom Framework bereitgestellt werden, ja auch irgendwo herkommen müssen.
Bei Java brauchst Du auch die JRT (wie groß ist die eigentlich?), wenn Du ein VB6 Programm laufen lassen willst, benötigst Du die VB Runtime, usw. usf.
Die .NET Runtime einmal irgendwo herzubekommen sollte ja auch keine Schwierigkeit darstellen, entweder als Download oder von einer CD (auf mindestens jeder zweiten CD, die einer Zeitschrift beiliegt, ist auch .NET drauf…)

Wenn Du Dir also um die Umgebung solche Gedanken machst, könntest Du das Progrämmchen ja auch bspw. als VBS programmieren, dann brauchst Du nichts weiter installieren.

Dass das Programm auf dem Rechner des Kollegen nicht läuft, obwohl er auch .NET installiert hat, liegt mit an Sicherheit grenzender Wahrscheinlichkeit nicht am Framework selbst (dass „irgendwie“ die Installation schief gegangen ist oder ähnliches).
In Deinem Programm wird offenbar irgendwo eine Exception nicht behandelt, was i.A. zu der von Dir geschilderten Meldung führt.
Hast Du eine entsprechende Fehlerbehandlung in Deinem Programm? Ohne zu wissen, welche Exception das ist und wo sie auftritt hast Du nämlich auch keine Chance, dem Problem auf die Spur zu kommen.

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]