Laden...

Warum wird die *.dll.config beim CLickOnce nicht mitinstalliert?

Erstellt von oehrle vor 3 Jahren Letzter Beitrag vor 3 Jahren 1.171 Views
O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 3 Jahren
Warum wird die *.dll.config beim CLickOnce nicht mitinstalliert?

Hallo, ich habe seit 5 Jahren ein Projekt laufen, bei dem immer wieder Verbesserungen einfliessen.
Nun war auch wieder eine Neuanpassung notwendig, da ein neues Verarbeiten von anderen Daten notwendig war.
Um diese Verarbeitung von der bisherigen zu isolieren, habe ich dazu eine neue Klassenbibliothek als weiteres Projekt bei meinem bisherigen zugepackt.
Alles hat soweit funktioniert, die Debugversion funktioniert.

Jetzt kommts. Heute wollte ich das ganze wieder per "ClickOnce" auf den Server stellen. Das hat auch funktioniert, die neue Version wurde auch installiert.
Wenn ich aber eine neu angepasste Operation ausführen lassen will, sagt mir die Applikation es fehlt die xxxxxxxx.dll.config. Das ist die Dll.config der neuen Klassenbibliothek, die ist als ".NET Standard 2.0" Framework erstellt.

Ich habe dann nachgesehen, die DLL.Config wird tatsächlich in User\AppData\Local ... usw nicht installiert.

Gibt es dazu eine zusätzliche Einstellung die angegeben werden muss? In der Klassenbibliothek ist diese als "App.config" deklariert.

Hat jemand eine Idee, oder Tipp?

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 3 Jahren
Ohne Erfolg

Hallo, habe das probiert.
Geht leider nicht. Hbae die Einstellungen so gemacht, zwar war die Beschreibung englisch, aber denke das passt so.

Kann es an den unterschiedlichen Projekttypen liegen? Bei dem Projekt wo die "*.dll.config" nicht mitkommt ist als .NET Standard 2.0 eingestellt.

In dem Projektverzeichnis mit .NET Standard 2.0 im DEBUG-Ordner ist die Konfigurationsdatei korrekt abgelegt, korrekt mit dem Namen vom Assemblynamen abgeleitet (siehe Bild).

Wenn ich die Eigenschaften für die App.config verändere oder wieder zurückändere verändert sich nichts.

Habe auch einmal zu Testzwecken eine Anwendungskonfigurationsdatei genau mit dem Dateinamen angelegt, und die Eigenschaften so eingestellt, war auch ohne Erfolg.

Anbei noch Bilder zusammengefügt zur besseren Doku.

4.931 Beiträge seit 2008
vor 3 Jahren

Wird die Datei "DigitalModelErfassung.dll.config" denn auch beim Kompilieren in den Ausgabeordner des Hauptprojekts kopiert (denn dort muß sie existieren!)?

Und gemeint ist in der Antwort, daß diese Konfigurationsdatei zu dem Hauptprojekt (denn dieses ist mit "project" gemeint) hinzugefügt werden soll (du kannst auch diese Datei per "Add As Link" [ich weiß leider nicht die deutsche Übersetzung dafür, evtl. "Als Verweis hinzufügen"] hinzufügen, so daß immer auf die Originaldatei aus dem Library-Projekt verwiesen wird, anstatt einer Kopie).

Edit: "Add as Link" ist beim "Add File"-Dialog als zusätzliche Option beim Button "Add" verfügbar (Dropdown menu).

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 3 Jahren

Hallo Th69, überhaupt mal danke für deine Unterstützung. Leider funktioniert das nicht.
Ich habe das (Neben)Projekt im Hauptprojekt eingebunden, so mache ich das auch immer.
Nur mit dem Unterschied, das dieses (Neben)Projekt nun mal in Net.Standard 2.0 erstellt wurde (in der Weisheit, zukunftsfähig zu bleiben).
Eingebunden wure die DLL von dem (Neben)Projekt, als Verweis, siehe Bild.

Also, wenn ich die Hauptapplikation (Release-Verzeichnis) auf das Netz stelle, und die EXE starte, funktioniert das alles (die "DigitalModelErfassung.dll.config" ist im Verzeichnis vorhanden).

Bei der Veröffentlichung mit Click-Once, fehlt diese DLL im "ApplicationFiles" - Verzeichnis, wo die ganzen Versionstände veröffentlicht werden.

Hängt das nun damit zusammen, das ich dieses Projekt nicht als ".NET Framework" erstellt habe?

Sorry für die späte Rückantwort.

4.931 Beiträge seit 2008
vor 3 Jahren

Was genau funktioniert an meiner beschriebenen Vorgehensweise nicht?
Zeige mal die Eigenschaften der hinzugefügten "DigitalModelErfassung.dll.config"-Datei deines Hauptprojekts.

Edit: s.a. Vorgehensweise: Angeben der mit ClickOnce veröffentlichten Dateien.

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 3 Jahren

Hallo, also habe das Bild beigefügt. Von dem Nebenprojekt habe ich die Konfigurationsdatei nicht separat als Verweis dazugefügt. Das passiert ja eigentlich von alleine, wenn man die DLL vo Projekt als Verweis zufügt, oder?

4.931 Beiträge seit 2008
vor 3 Jahren

Nein, das passiert eben nicht automatisch. Woher soll ClickOnce wissen, welche externen Dateien es alle zusammenpacken soll (es untersucht das Hauptprojekt und dessen Verweise, aber keine weiteren externen Dateien wie eben "DLL-Konfigurationsdateien")?
Und daher mußt du diese Datei dem Hauptprojekt hinzufügen...

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 3 Jahren

Kannst mal ein Screenshot erstellen, wo das gemacht wird?

16.806 Beiträge seit 2008
vor 3 Jahren

Steht in der Dokumentation, die Dir Th69 bereits verlinkt hat; zwar nicht mit Bildern aber Schritt für Schritt.

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 3 Jahren

Hallo Th69, danke, hat jetzt funktioniert. Das war für mich total neu, dass die Config ins Hauptprojekt dazugestellt werden muss.
Wie ist das wenn diese Config im Nebenprojekt verändert wird? Muss ich diese dann wiederneu hinzufügen, bzw. zuerst entfernen?

4.931 Beiträge seit 2008
vor 3 Jahren

Darum habe ich ja geschrieben, daß du diese als "Link" zum Projekt hinzufügen kannst (d.h. es verwendet direkt die Originaldatei und keine Kopie).

Freut mich aber für dich, daß es jetzt (endlich) klappt. 😉

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

Alles klar, habe das mit dem Link gefunden, nun passt das.
Danke.