Ich habe ein ArcMap-Add-In entwickelt, für das eine Konfigurationsdatei erforderlich ist. Nachdem ich eine Weile versucht habe, Konfigurationswerte aus einer einzelnen App.Config-Datei zu lesen (und immer null zu bekommen), kann das Add-In meiner Meinung nach hier keine Werte lesen, da es sich um eine Klassenbibliothek handelt, und sucht nach der aufrufenden Anwendung (ArcMap). 's Konfigurationsdatei, wenn ich nach dem Wert eines Schlüssels frage (daher die Null).
Um dies zu umgehen, habe ich eine App.Settings-Datei verwendet, die die Anwendung gut lesen kann. Durch das Erstellen dieser Datei wird auch eine App.Config-Datei in die Umgebung eingefügt, und Visual Studio scheint die beiden Dateien während der Entwicklung synchron zu halten.
Jetzt, da das Add-In bereitgestellt wird, muss ich in der Lage sein, Konfigurationswerte (z. B. den Speicherort der Protokolldatei) zu ändern. Ich habe versucht, die .esriaddin-Datei zu öffnen / zu extrahieren und die App.Config-Datei dort zu aktualisieren, aber das Add-In behält die gleichen Konfigurationswerte bei, die es beim Kompilieren hatte. Ich weiß, dass die neuen App.Config-Werte in der .esriaddin-Datei beibehalten werden, da ich sie nach dem Schließen des Archivs erneut anzeigen kann.
Kennt jemand eine zuverlässige Möglichkeit, ein Add-In zu konfigurieren und zuzulassen, dass diese Konfiguration nach der Bereitstellung aktualisiert werden kann? Irgendwelche Vorschläge sind sehr willkommen, da es lächerlich erscheint, dass ich dafür eine benutzerdefinierte Konfigurationsdatei brauche.
App.Settings-Werte befinden sich auf Anwendungsebene, und derzeit haben sowohl App.Settings als auch App.Config folgende Build-Aktion: Keine / Nicht kopieren.