the incredible Leitman
Erfahrenes Mitglied
Hallo zusammen
Ich hab ein Problem damit, wie man "richtig" eine .exe, geschrieben in VC++, .net 2.0 auf einem Zielrechner deployed -.-
Zur Vorgeschichte:
Soweit ich weiß, MÜSSEN Anwendung welche in VC++ geschrieben wurden ein manifest beinhalten... dieses kann entweder embeded sein,
oder aber der .exe beiliegen.
Des Weiteren muss natürlich die c++ runtime auf dem Zielrechner vorhanden sein.
Hierbei stellt sich mir schon die Frage: MUSS zwingend dieselbe Version vorhanden sein?
Was passiert, wenn stattdessen eine niedrigere minor auf dem Zielsystem liegt?
Was bei einer höheren?
Da ich mich bei dem Deployment nicht darauf verlassen kann, dass der User Administrationsrechte hat, verwende ich die Methode aus der MSDN (glaub "XCopy" wurde die genannt?) bei der man die benötigten .dlls einfach mitliefert.
so weit, so gut, bis daher bin ich gut raus ^^
Nun beginnt das Ganze aber, für mich unverständlich zu werden
Wie sieht das "allgemein" mit .net aus? Ich habe .net in der Version 2.0 (mit Updates) installiert und verwende Funktionalitäten davon.
Heißt das nun, ich muss auf dem Rechner .net 2.0 installiert haben? Oder sind genau das die genannten .dlls a'la msvcr80, msvcp80, msvcm80 ?
Da ich nun bereits einige Zeit daran hänge, habe ich schon den in VS mitgelieferten "Dependency walker" verwendet um zu sehen, welche Bibliotheken ich eigentlich ausliefern muss.
Hierbei sehe ich aber, dass in einer release kompilierten Anwendung die msvcp80D.dll geladen wird / werden soll?
Gibt es eine Möglichkeit, herauszufinden, WARUM meine Applikation diese debug Bibliothek laden möchte?
Des weiteren, würde mich intressieren, wie das Ganze mit den "nicht .net" spezifischen dlls aussieht.
So lade ich unter WinXP ganz normal die gdiplus.dll, welche ich zum zeichnen verwende,
in der neuesten Version auf meinem Entwicklungsrechner.
Kann ich die ebenfalls mitgeben?
Oder wie verhält sich das Programm, wenn ich es z.B. unter Win2000 ohne gdiplus auführen möchte?
Das Problem ist nämlich, wenn ich es unter Server 2003 starte (mit dependency walker) schlägt das Laden der gdiplus.dll fehl ? Obwohl diese auf dem System (halt in einer anderen Version als bei mir) vorhanden ist (im WinSxS Ordner).
Ebenso hierzu kommt die common control dll (die ich angeblich verwenden soll,
um "schönere" visuelle Elemente zu bekommen)
Wäre wundervoll, wenn mich jemand hier aufklären könnte
mfg
the incredible Leitman
Ich hab ein Problem damit, wie man "richtig" eine .exe, geschrieben in VC++, .net 2.0 auf einem Zielrechner deployed -.-
Zur Vorgeschichte:
Soweit ich weiß, MÜSSEN Anwendung welche in VC++ geschrieben wurden ein manifest beinhalten... dieses kann entweder embeded sein,
oder aber der .exe beiliegen.
Des Weiteren muss natürlich die c++ runtime auf dem Zielrechner vorhanden sein.
Hierbei stellt sich mir schon die Frage: MUSS zwingend dieselbe Version vorhanden sein?
Was passiert, wenn stattdessen eine niedrigere minor auf dem Zielsystem liegt?
Was bei einer höheren?
Da ich mich bei dem Deployment nicht darauf verlassen kann, dass der User Administrationsrechte hat, verwende ich die Methode aus der MSDN (glaub "XCopy" wurde die genannt?) bei der man die benötigten .dlls einfach mitliefert.
so weit, so gut, bis daher bin ich gut raus ^^
Nun beginnt das Ganze aber, für mich unverständlich zu werden
Wie sieht das "allgemein" mit .net aus? Ich habe .net in der Version 2.0 (mit Updates) installiert und verwende Funktionalitäten davon.
Heißt das nun, ich muss auf dem Rechner .net 2.0 installiert haben? Oder sind genau das die genannten .dlls a'la msvcr80, msvcp80, msvcm80 ?
Da ich nun bereits einige Zeit daran hänge, habe ich schon den in VS mitgelieferten "Dependency walker" verwendet um zu sehen, welche Bibliotheken ich eigentlich ausliefern muss.
Hierbei sehe ich aber, dass in einer release kompilierten Anwendung die msvcp80D.dll geladen wird / werden soll?
Gibt es eine Möglichkeit, herauszufinden, WARUM meine Applikation diese debug Bibliothek laden möchte?
Des weiteren, würde mich intressieren, wie das Ganze mit den "nicht .net" spezifischen dlls aussieht.
So lade ich unter WinXP ganz normal die gdiplus.dll, welche ich zum zeichnen verwende,
in der neuesten Version auf meinem Entwicklungsrechner.
Kann ich die ebenfalls mitgeben?
Oder wie verhält sich das Programm, wenn ich es z.B. unter Win2000 ohne gdiplus auführen möchte?
Das Problem ist nämlich, wenn ich es unter Server 2003 starte (mit dependency walker) schlägt das Laden der gdiplus.dll fehl ? Obwohl diese auf dem System (halt in einer anderen Version als bei mir) vorhanden ist (im WinSxS Ordner).
Ebenso hierzu kommt die common control dll (die ich angeblich verwenden soll,
um "schönere" visuelle Elemente zu bekommen)
Wäre wundervoll, wenn mich jemand hier aufklären könnte
mfg
the incredible Leitman