mikrocontroller.net

Forum: PC-Programmierung VS-Projekt auslieferbar?


Autor: Winfried (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute!

Da ich für einen Bekannten von mir eine Software in Visual Studio (C++) 
geschrieben habe, möchte ich ihm diese übergeben.

Da er die Software gegebenenfalls an andere Benutzer (PCs) verteilen 
möchte, tut sich bei mir folgende Frage auf:

Das Programm besitzt eine graphische Benutzeroberfläche (WinForms) und 
es kann erfolgreich kompiliert und auf meinem Rechner (!) ausgeführt 
werden.

 - Wie muss ich das Projekt erstellen, damit ich sicher gehen kann, dass 
das Programm ohne "benötigte DLLs" oder Ähnlichem auf jedem 
Windows-Rechner (XP bis Win7) läuft?

Ich denke nicht, dass es damit getan ist, einfach die EXE-Datei 
weiterzugeben ;-)



Vielen Dank, habe bisher leider nie für andere Maschinen programmiert.


Gruß
Winni

Autor: Oliver R. (superberti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

da du WinForms verwendest, hast Du ein .NET-Programm geschrieben und 
kein C++-Programm im ursprünglichen Sinne.
Der Zielrechner benötigt dann das dazu passende .NET-Framework 
(Versionen sind abwärtskompatibel) und eventuelle Dlls, falls Dein 
Programm aus mehreren Modulen besteht.

Gruß, Oliver

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.Net sieht kein monolithisches Linken vor, d.h., mit einer Exe-Datei 
alleine ist es nicht getan, es ist mindestens die passende 
.Net-Laufzeitumgebung erforderlich.

Autor: Winfried (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welcher Mechanismus von Microsoft "garantiert" mir denn, dass die 
Software auf Windows-Maschinen größer XP reibungslos funktionieren?

Die Entwicklung der Software schön und gut, aber wenn's ums Ausliefern 
geht, hält M$ die Waffen still...

Auf deutsch: Den Projektordner incl. des .NET-Frameworks ausliefern.



Das nächste mal glaube ich verwende ich Java. Da soll's ja ohne Weiteres 
klappen.-Soviel zur Theorie.


Gruß

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Winfried schrieb:
> Welcher Mechanismus von Microsoft "garantiert" mir denn, dass die
> Software auf Windows-Maschinen größer XP reibungslos funktionieren?

Das Entwicklungssystem sollte einen Mechanismus zum Zusammenpacken aller 
benötigten Dinge bieten, mehr werden Dir die diversen im Forum 
anwesenden .Net-Fanboys verraten können (ich nutze das Zeug nicht).

> Das nächste mal glaube ich verwende ich Java. Da soll's ja ohne Weiteres
> klappen.

Das tut es natürlich auch nicht, ohne JRE macht so eine JAR-Datei gar 
nichts.

Autor: avr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal hier im Kapittel 30:

http://openbook.galileocomputing.de/visual_csharp_...

Ist zwar C# und nicht C++, aber auch MS Studio mit den
selben Problemen.

Sollte also vom Lösungsweg gleich oder wenigstens ähnlich sein.

Das mit Java geht auch nur, wenn Java auf dem Zielrechner
läuft (wobei das meist der Fall sein dürfte).

avr

Autor: bluppdidupp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einfach auf Build -> Publish, dann erzeugt er nen Installer

Autor: Jasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Winfried schrieb:
> Welcher Mechanismus von Microsoft "garantiert" mir denn, dass die
> Software auf Windows-Maschinen größer XP reibungslos funktionieren?

Garkeiner. Den Installer (inklusive aller Abhängigkeiten, 
Redistributables etc. pp.) musst Du schon selber erstellen. Nicht jedes 
API ist auf allen OS-Versionen verfügbar, ist auch irgendwie logisch?

Und womöglich musst Du im Code sogar Spezialfälle behandeln.

Das war noch nie anders. Es ist auch einer der Gründe warum nicht die 
Sekretärinnen Software entwickeln sondern einigermassen gut bezahlte, 
umm, Spezialisten.

> Die Entwicklung der Software schön und gut, aber wenn's ums Ausliefern
> geht, hält M$ die Waffen still...

Nein, nicht wirklich. Deren Antwort heisst irgendwie so: Installshield 
oder ähnlich verwenden, jede Menge Dokus lesen, ohne Ende testen.

> Auf deutsch: Den Projektordner incl. des .NET-Frameworks ausliefern.

Nein. Das funktioniert garantiert nicht überall. Und wenn der "Kunde" 
nicht für den Code bezahlt hat kriegt er den auch nicht, aus Prinzip.

Ich habe schon Bekloppte gesehen die dann verlangt haben dass auf dem 
Zielsystem die korrekte Visual Studio-Version installiert sein muss. 
Autsch...

> Das nächste mal glaube ich verwende ich Java. Da soll's ja ohne Weiteres
> klappen.-Soviel zur Theorie.

Bwahahaha! Träum weiter. Oder informier Dich mal über die Realität. Java 
- ohne Weiteres klappen! Mit der Sprache die um die tausend subtil 
inkompatible Implementierungen für alles und jedes hat, genau, das muss 
ja klappen...

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verwende das nächste Mal RealStudio. Das packt wenigstens ALLES (DLLs 
und EXE) in einen Ordner und das Programm läuft ohne jede Installation, 
Kopieren genügt. Auch vom Stick oder der CD.
Und ganz nebenbei kannst du aus dem gleichen Quelltext Mac- und 
Linux-Versionen erstellen - wenn du keine speziellen Systemaufrufe 
machst, ohne jede Änderung.

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Winfried schrieb:
> Ich denke nicht, dass es damit getan ist, einfach die EXE-Datei
>
> weiterzugeben ;-)

Normalerweise reicht das. Wenn du keine speziellen Dlls benutzt, ist 
alles im .Net-Framework drin.

Das aktuelle .Net-Framework ist seit XP SP2 in den Windows-Updates. 
Insofern sollte es keine Probleme geben. Es sei denn der Benutzer hält 
seinen PC nicht auf dem neuesten Stand. Aber das ist nun wirklich nicht 
dein Problem.

Mit welchem Visual Studio programmierst du? Ich nehme mal an, daß du die 
kostenlose Express-Version verwendest.

Da kann das:

bluppdidupp schrieb:
> Einfach auf Build -> Publish, dann erzeugt er nen Installer

u.U. nicht zutreffen, da die Express-Versionen nicht für die 
kommerzielle Anwendung sind und genau diese Funktionen nicht drin sind.


mfg.

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas Eckmann schrieb:
> bluppdidupp schrieb:
>> Einfach auf Build -> Publish, dann erzeugt er nen Installer
>
> u.U. nicht zutreffen, da die Express-Versionen nicht für die
> kommerzielle Anwendung sind und genau diese Funktionen nicht drin sind.

Die Express-Versionen sind für kommerzielle Anwendungen 1) allerdings 
gibt's ClickOnce nicht direkt für C++-Anwendungen 2)...

> mfg.

1) http://www.microsoft.com/express/support/support-faq.aspx
2) http://msdn.microsoft.com/en-us/library/ms235287.aspx

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arc Net schrieb:
> Die Express-Versionen sind für kommerzielle Anwendungen

Man darf sie dafür verwenden, gemacht sind sie nicht dafür.

Keine DLLs, kein Setup, kein Source-Safe...


mfg.

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas Eckmann schrieb:
> Arc Net schrieb:
>> Die Express-Versionen sind für kommerzielle Anwendungen
>
> Man darf sie dafür verwenden, gemacht sind sie nicht dafür.
>
> Keine DLLs, kein Setup, kein Source-Safe...

DLLs kann man afaik mit allen Express-Versionen erzeugen (VC++ auch 
native),
Setup: C#, VB -> ClickOnce, ansonsten wix.codeplex.com, Orca aus dem 
Windows SDK 1), InnoSetup oder was anderes, SourceSafe ist tot also 
entweder TFS oder Subversion, Mercurial, Darcs. Was fehlt (wenn man es 
denn braucht) sind u.a. div. Datenbank-, Profiling-, Refactoring- und 
Modeling-Werkzeuge und ext. Add-Ins.

>
> mfg.

1) http://msdn.microsoft.com/en-us/library/aa370557(v...

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arc Net schrieb:
> DLLs kann man afaik mit allen Express-Versionen erzeugen (VC++ auch
>
> native),

Da habe ich mich auch vertan. Ich meinte Services.

mfg.

Autor: _M_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich in VS Express auf "Erstellen" im Menü klicke, dann werden alle 
Dateien die man braucht in den Projektunterordner \bin\Release kopiert. 
Die kann man kopieren, starten und alles läuft.
Vorraussetzung ist, dass externe DLLs als Verweise im Projekt eingefügt 
sind.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.