Autor Beitrag
The Developer Guru
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 13.03.16 13:13 
Hallo ihr Experten.

Vorab: Ich habe vor, alle Dateien (wie .dll, .xml, .txt und natürlich die .exe) in einem Zip Ordner zu liefern. In meiner Anwendung handelt es sich um einen HTML Editor, der mit Scintilla arbeitet. Ich habe die Exe und die Text-Datei in einen Zip-Ordner gepackt. Die Dateien habe ich dann extrahiert und wollte die Anwendung starten. Diese öffnet aber nicht.

Muss ich alle Dateien, die im Release Ordner von VS sind in den Zip Ordner packen, oder reicht die Exe und die DLL?
Beim ersten Start der Anwendung sollen alle Dateien im Zip.Ordner an die richtige Stelle zum Systemordner Dokumente (plus Unterordner natürlich) verschoben werden.

Die Anwendung startet aber überhaupt nicht. Es passiert gar nichts, wenn ich die Exe öffne.


ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
private void Form1_Load(object sender, EventArgs e)
        {
            if (_einstellungen.ZumErstenmalGeladen == true)
            {
                Begrüßung _begrüßung = new Begrüßung (_einstellungen) // _einstellungen ist eine Klassenvariable;
                _begrüßung.ShowDialog();

                if (_begrüßung.einverstanden == true//bool einverstanden -> wenn Benutzer AGBs bestätigt hat
                {
                    _einstellungen.ZumErstenmalGeladen = true;
                    _einstellungen.Save();
                }
                else
                {
                    Application.Exit();
                }
            }
        }


ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
private void button1_Click(object sender, EventArgs e)
        {
            // Begrüßungsform
            this.Size = new Size(842444);
            string path = Directory.GetCurrentDirectory(); // müsste ja eigentlich der Pfad der Anwendung IM extrahiertem Ordner sein?
            File.Move(Path.Combine(path, "ReadMe.txt"), Path.Combine(io.pInformationen));
            File.Move(Path.Combine(path, "Erste Schritte.pdf"), Path.Combine(io.pInformationen));
            this.progressBar1.Value = 20;
            Directory.CreateDirectory(io.pFarbkombinationen);
            Directory.CreateDirectory(io.pProjekte);
            this.progressBar1.Value = 40;
            
        }
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: So 13.03.16 18:15 
Zitat:
Muss ich alle Dateien, die im Release Ordner von VS sind in den Zip Ordner packen, oder reicht die Exe und die DLL?


So simpel/eindeutig nicht zu beantworten. Es könnte auch Abhängigkeiten geben die dort nicht auftauchen oder Dinge die da drin liegen die du nicht brauchst.
Wenn du eine Third-Party Komponente verwendest sollte die in ihrer Doku, meist unter dem Stichwort Deployment (was, wie und unter welchen Copyright Einschränkungen), sagen wie das zu handhaben ist.

Zitat:
ausblenden C#-Quelltext
1:
string path = Directory.GetCurrentDirectory(); // müsste ja eigentlich der Pfad der Anwendung IM extrahiertem Ordner sein?					


Die Annahme ist falsch. Das Arbeitsverzeichnis ist ein sehr volatile Größe die manchmal mit dem Startpfad zusammenfällt aber auch was ganz anderes sein kann oder sich zur Laufzeit ändert.
Dein Code sieht nach Winforms aus das wäre Application.StartupPath die Property der Wahl


Edit: Falls gilt The Developer Guru == Csharp-programmierer bitte auf einen Account beschränken.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 13.03.16 19:47 
Hallo "The Developer Guru",

bitte lies mal deine PN und antworte darauf.
Csharp-programmierer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: So 13.03.16 20:59 
Also ich habe jetzt die anderen Daten auch in den ZIP eingefügt und die Anwendung startet. Wenn ich die Exe aber aus dem Ordner rausnehme und starte, öffnet sie wieder nicht. Gibt es einen anderen Weg oder muss die Exe unbedingt im Ordner mit allen Dateien sein?

_________________
"Wer keinen Sinn im Leben sieht, ist nicht nur unglücklich, sondern kaum lebensfähig" - Albert Einstein
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 14.03.16 00:27 
Zitat:
Also ich habe jetzt die anderen Daten auch in den ZIP eingefügt und die Anwendung startet. Wenn ich die Exe aber aus dem Ordner rausnehme und starte, öffnet sie wieder nicht. Gibt es einen anderen Weg oder muss die Exe unbedingt im Ordner mit allen Dateien sein?


Nein, es gibt viele andere Wege. Datei ist ja auch nicht Datei also ist die Frage eh nicht sinnvoll zu beantworten. Ein Bild das du selbst lädst ist völlig egal von wo. Bei einer Assembly die du selbst lädst ist das völlig egal von wo. Wenn du das dem System überlässt was es laden soll dann ist es am einfachsten sie einfach im gleichen Ordner zu haben. Und es gibt da noch viele andere Sorten von Dateien die ihre eigenen Antworten für das "wo soll ich die ablegen" haben. Am besten solltest du herausfinden was du da für Dateien hast wofür die gut sind und ob du die brauchst. Die Dateien einfach als Dateien zu betrachten ist zu simpel.