Einzelnen Beitrag anzeigen
Alt 11.03.2007, 19:08   #16
Biri
Hero
 
Registriert seit: 04.09.2001
Beiträge: 894


Standard

Hallo,

Diese Fehlermeldung sagt aus, dass dein Programm das .net Framework 2.0 verwenden möchte, auf dem PC auf dem es gestartet wurde aber nicht finden kann.

Das .net Framework wurde von Microsoft entwickelt, um die Windows Programmierung zu vereinfachen (imho. erfolgreich). Es bildet einen objektorientierten Layer über die Win API, geht dabei aber viel weiter wie z.B. MFC oder ATL.
.net ist keine Programmiersprache, sondern definiert eine Infrastruktur, welche von einer .net Sprache erfüllt werden muss (z.B. C#, VB.NET) - Der Compiler von .net Sprachen erzeugt IL Code (intermediate Language) usw. usw. - ein umfangreiches Thema das ich hier jetzt nicht in allen Details erläutern kann.

Jedenfalls KANNST du in deinem mit Visual Studio 2005 erstellten Programm die .net Runtime verwenden (.net Runtime sind in Wahrheit einige Dll's - diese werden unter .net als Assemblies bezeichnet - sie enthalten im Gegensatz zu "normalen" Dlls auch noch Metadaten).
Wenn du diese .net Runtime verwendest, muss auf dem PC auf welchem das Programm installiert wird dann auch die .net Runtime (= das .net Framework) installiert werden.

Beim XP SP2 war .net dabei, allerdings nicht die Version 2.0 - diese ist nur bei Windows Vista von haus aus mitinstalliert.

Du hast also die Möglichkeiten:
- Auf allen PC's die dein Programm verwenden möchten die .net Runtime zu installieren
- In deinem Programm die .net Runtime nicht zu verwenden und C++ Programme "wie bisher" zu schreiben.

Ich tendiere zu Möglichkeit 1, weil es das Programmieren enorm vereinfacht, es kommt aber immer auf deinen Anwendungsfall an.
Wenn du die .net Runtime nicht benötigst oder du weißt, dass sie auf den PCs deiner Kunden (warum auch immer) nicht installiert wird, musst du ohne dieser auskommen.

Du musst dann halt im Visual Studio den entsprechenden Projekttypen auswählen - also z.B. Other Languages - C++ - ATL/MFC/Win32


Zitat:
Es wir anscheinend ein Framework V2 benötigt, das im WinXP Professional enthalten ist.
Nein, .net Framework 2.0 ist auch in Windows XP nicht enthalten, wird aber über die Windows Updates installiert, wenn man das zulässt. Erst bei Vista ist es fix dabei.

Zitat:
Ich hätte das Programm gerne portierbar gemacht auch auf PC's ohne Framework.
Wenn das wirklich sein muss, darfst du in einem Programm keinen Funktionen des Frameworks verwenden. Also Projekttyp MFC/ATL/Win32

Zitat:
Hier gibt es mit den VS2005 anscheinend neue Regeln. Bei VS6.0 war das noch einfach. Da konnte mann die DLLs statisch ins Programm dazu linken und das Programm war einfach durch kopieren portierbar.
Ja, es haben sich einige Dinge geändert imho. aber zum Positiven - zu Zeiten von VS 6.0 gab es noch kein .net Framework, da durfte man sich mit MFC herumärgern - das war viiieeeell schlimmer. (Dll Hell !)

Das Deployment wurde unter .net stark vereinfacht - suche mal nach "Click once deployment", ev. wäre das was für dein Programm. Dabei wird ein Setup erstellt welches Prüft, ob es am PC auf dem installiert wird bereits das .net Framework gibt und dieses ggf. installiert. Man kann es dann auch so konfigurieren, dass automatisch auf einem Server nachgeschaut wird, ob es eine neue Programmversion gibt, welche dann beim Start des Programmes automatisch zum Client übertragen wird u.v.a.

In einem Punkt geb ich dir aber recht: Seit VC 6.0 hat sich einiges getan.

fg
hannes
Biri ist offline   Mit Zitat antworten