Laden...

Visual Studio App.Config aus eingebundenen Projekten werden nicht veröffentlicht

Erstellt von oehrle vor 2 Jahren Letzter Beitrag vor 2 Jahren 269 Views
O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 2 Jahren
Visual Studio App.Config aus eingebundenen Projekten werden nicht veröffentlicht

Hallo, habe folgendes Problem.
Habe eine Projektmappe mit mehreren Projekten.
Einige Projekte haben eine eigene Konfigurationsdatei "Applikation.config.exe".
Leider wird aber nur die vom Hauptprojekt mitgegeben, die anderen fehlen (werden nicht mit ClickOnce veröffentlicht).
Muss ich die Konfiguratinsdateien irgendwie verlinken, oder wie macht man das? Oder gibt es dafür sonstige Einstellungen?

16.807 Beiträge seit 2008
vor 2 Jahren

Muss leider raten, aber ich nehme an, dass Du sagen willst, dass Dein Hauptprojekt eine Anwendung ist und dort die App.Config erfolgreich deployed wird, aber von Deinen Klassen-Projekten nicht.
Das ist auch absolut korrekt so und auch by-design.

Klassenprojekte sollten keine App.Config haben bzw. nur Anwendungsprojekte sollten diese haben.
Konfigurieren von Apps mithilfe von Konfigurationsdateien
Wenn die Klassenprojekte eine Konfiguration brauchen, dann solltest Du das entsprechend der API im Code mitgeben.

Gibt von Haus aus IIRC auch keine Einstellung für.
Willst Du das entgegen des Designs trotzdem haben, dann wirst Du das wahrscheinlich manuell machen müssen.

Die App.Config bzw. der Configuration Manager ist auch ein etwas überholtes Konept.
Die moderne Variante, die in allen Arten von .NET Projekten einwandfrei funktioniert und designed ist, sind die Microsoft Configuration Extensions.
Diese enden quasi in Optionsmuster in .NET

Siehe auch Konfiguration in .NET

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 2 Jahren
Gelöst

Es hat funktioniert.
Es müssen lediglich die Kofigurationsdateien der einzelnen Projekt in das Hauptverzeichnis der Hauptanwendung (Hauptprojekt) gelinkt werden (bei Hinzufügen, den kleinen Pfeil am Dialogbutton klicken, dort ist "als Verweis hinzufügen). Dann werden diese *.dll.config oder *.exe.config bei ClickOnce in das ApplicationVerzeichnis auf dem Server übertragen.

Ach ja, ganz wichtig ist noch, das dann die Eigenschaften der verlinketen Konfigs im Hauptverzeichnis noch folgende Einstellung bekommen:

  • Buildvorgang: "Immer"
  • In Ausgabeverzeichnis kopieren: "Immer" oder "immer wenn neuer"

==> Diese Einstellungen sind zu finden wenn man die Verlinkte Datei im Hauptprojektverzeichnis von VisualStudio anklickt, dann mit rechter Maustaste auf Eigenschaften.
So, das wars.

309 Beiträge seit 2020
vor 2 Jahren

Oder als Alternative: Post Build Ereignisse und entsprechende Projektabhängigkeiten

Aber interessehalber: für was braucht man dll.configs?! Normalerweise sollten die ja abhängig von der eigentlichen Anwendung sein und nicht von eigenen Einstellungen? 😄