Probleme mit Release Build bei XmlSerializer

09/09/2008 - 11:51 von Daniel | Report spam
Hallo

Ich habe meine Applikation als Release erstellt und ins vorgesehene
Applikationsverzeichnis kopiert.
Beim Starten der Applikation bekomme ich eine Fehlermeldung mit folgendem
Stacktrace:

System.Configuration.ConfigurationErrorsException: Das Konfigurationssystem
konnte nicht initialisiert werden. >
System.Configuration.ConfigurationErrorsException: Die Konfigurationsdatei
"GMCtpl.config" verfügt nicht über das <configuration>-Stammtag.
(C:\ProgramData\CompanyName\ApplicationName\GMCtpl.config line 2)
bei System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean
ignoreLocal)
bei
System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors
schemaErrors)
bei System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors()
bei System.Configuration.ClientConfigurationSystem.EnsureInit(String
configKey)
Ende der internen Ausnahmestapelüberwachung
bei System.Configuration.ClientConfigurationSystem.EnsureInit(String
configKey)
bei
System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String
sectionName)
bei System.Configuration.ConfigurationManager.GetSection(String
sectionName)
bei System.Configuration.PrivilegedConfigurationManager.GetSection(String
sectionName)
bei System.Diagnostics.DiagnosticsConfiguration.GetConfigSection()
bei System.Diagnostics.DiagnosticsConfiguration.Initialize()
bei System.Diagnostics.Switch.InitializeConfigSettings()
bei System.Diagnostics.Switch.InitializeWithStatus()
bei System.Diagnostics.Switch.get_SwitchSetting()
bei System.Diagnostics.BooleanSwitch.get_Enabled()
bei System.Xml.Serialization.TempAssembly.LoadGeneratedAssembly(Type
type, String defaultNamespace, XmlSerializerImplementation& contract)
bei System.Xml.Serialization.XmlSerializer..ctor(Type type, String
defaultNamespace)
bei System.Xml.Serialization.XmlSerializer..ctor(Type type)
bei GMCtpl.MainForm.ReadConfigFile()
bei GMCtpl.MainForm.MainForm_Load(Object sender, EventArgs e)
...

Meine Methode GMCtpl.MainForm.ReadConfigFile() sieht so aus; gemàss
Stacktrace scheiters im Constructor vom XmlSerializer:

private void ReadConfigFile()
{
try
{
XmlSerializer serializer = new XmlSerializer( typeof(
ApplicationData ) );
TextReader reader = new StreamReader(
Statics.Defaults.ConfigFile );
Statics.Params = (ApplicationData)serializer.Deserialize(
reader );
reader.Close();
}
catch( Exception ex )
{
MessageBox.Show( string.Format(
Properties.Resources.Error_ReadingConfigFile, ex.Message ),
Properties.Resources.App_Message_Caption,
MessageBoxButtons.OK,
MessageBoxIcon.Exclamation );
Application.Exit();
}
... // weitere initialisierungen
}


"ApplicationData" ist eine statische Klasse die nur die Applikationsdaten
enthàlt. Diese werden in "Statics.Params" gespeichert und sind somit
applikationsweit erreichbar. Die im Visual Studio einstellbaren Settings
unter "Properties / Einstellungen" verwende ich nicht, da die Settings für
alle Benutzer gleich sein sollen.
Im Debug Mode und innerhalb Visual Studio geht alles, da muss ich kein
Konfigurationssystem initialisieren.

Die Applikation wird mit .NET 3.5 in VS 2008 erstellt; WPF, WCF, etc wird
nicht verwendet, nur die Möglichkeit der Extensions.

Was muss ich anders machen, damit ich die Applikation als Release erstellen
und ohne Fehler laufen lassen kann?
Irgend eine Idee/Erfahrung?

Danke im Voraus
Daniel
 

Lesen sie die antworten

#1 Daniel
09/09/2008 - 13:52 | Warnen spam
Hab das Problem lösen können; Falls es jemand interessiert:

Meine Konfigurationsdatei darf nicht GMCtpl.config heissen. Da die
Dateierweiterung .config ist sucht das Framework offenbar darin seine
eigenen Settings. Ich hab sie umbenannt und jetzt làuft alles wie erwartet.

Hoffe, dass die Info für Euch von Nutzen und Interesse ist.

Daniel

Ähnliche fragen