Ik ben nu al een paar dagen aan het worstelen met mijn set-up programma. Ik heb hierover ook al een topic gemaakt: Verwijderd in "\[VS2008, C#]Custom install"
Het probleem wat ik daar had is inmiddels opgelost.
Het probleem is nu dat de gehele set-up wordt doorlopen. Alle custom actions zijn uitgevoerd en dan krijg ik deze foutmelding:
En daarna deze:
Ondanks dat de installatie is goed gegaan, veroorzaakt bovenstaande errors een rollback van de installatie.
Mijn logger classe hoeft ook helemaal niet serializable te zijn, dus snap ik de foutmelding niet.
In mijn code is regel 25 niets zinnigs: een '{' en ik gebruik nergens Name.
Verder bevat mijn logfile maar 18 regels.
Hier is mijn logger classe:
Uiteraard heb ik al via Google op "not marked serializable" gezocht, maar niets kunnen vinden wat op dit probleem lijkt.
Graag even een duwtje in de goede richting.
Het probleem wat ik daar had is inmiddels opgelost.
Het probleem is nu dat de gehele set-up wordt doorlopen. Alle custom actions zijn uitgevoerd en dan krijg ik deze foutmelding:
code:
1
| Het type ...myLogger in assembly ... is niet als serialiseerbaar gemarkeerd. |
En daarna deze:
code:
1
| Onverwachte bestandseinde aangetroffen bij parsen van Name. Regel 25, positie 18. |
Ondanks dat de installatie is goed gegaan, veroorzaakt bovenstaande errors een rollback van de installatie.
Mijn logger classe hoeft ook helemaal niet serializable te zijn, dus snap ik de foutmelding niet.
In mijn code is regel 25 niets zinnigs: een '{' en ik gebruik nergens Name.
Verder bevat mijn logfile maar 18 regels.
Hier is mijn logger classe:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
| public class myLogger : IDisposable { StreamWriter _sw = null; private string _logfilename; public string Logfilename { get { return _logfilename; } } ~myLogger() { this.Dispose(false); } public myLogger(string logfilename) { try { this._sw = new StreamWriter(logfilename, false); this._sw.AutoFlush = true; //Save for later: this._logfilename = logfilename; //Write text: this.Dbg("Start of logging."); } catch (Exception ex) { this.Dbg("Error in _logger.StartToFile: " + ex.ToString()); throw ex; } } public void Dbg(string message) { if (this._sw == null) throw new InstallException("Cannot write to logfile."); try { string tekst = DateTime.Now + " " + message; this._sw.WriteLine(tekst); } catch (Exception ex) { if (this._sw != null) { string tekst = DateTime.Now + " " + "Error in _logger.Dbg: " + ex.ToString(); this._sw.WriteLine(tekst); } throw ex; } } protected virtual void Dispose(bool disposing) { if (disposing) { //call dispose on any objects referenced by this object if (this._sw != null) { _sw.WriteLine("Final flush"); this._sw.Flush(); _sw.WriteLine("Closing logfile"); this._sw.Close(); this._sw.Dispose(); this._sw = null; } } } public void Dispose() { this.Dispose(true); GC.SuppressFinalize(this); } } |
Uiteraard heb ik al via Google op "not marked serializable" gezocht, maar niets kunnen vinden wat op dit probleem lijkt.
Graag even een duwtje in de goede richting.