Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Warum wird die *.dll.config beim CLickOnce nicht mitinstalliert?
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 399
Herkunft: Germany

Themenstarter:

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

beantworten | zitieren | melden

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?
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4175

beantworten | zitieren | melden

Hallo,

mach es mal so, wie in der Antwort von ClickOnce and External Config Files beschrieben.
private Nachricht | Beiträge des Benutzers
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 399
Herkunft: Germany

Themenstarter:

Ohne Erfolg

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von oehrle am .
Attachments
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4175

beantworten | zitieren | melden

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).
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Th69 am .
private Nachricht | Beiträge des Benutzers
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 399
Herkunft: Germany

Themenstarter:

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von oehrle am .
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4175

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Th69 am .
private Nachricht | Beiträge des Benutzers
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 399
Herkunft: Germany

Themenstarter:

beantworten | zitieren | melden

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?
Attachments
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4175

beantworten | zitieren | melden

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...
private Nachricht | Beiträge des Benutzers
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 399
Herkunft: Germany

Themenstarter:

beantworten | zitieren | melden

Kannst mal ein Screenshot erstellen, wo das gemacht wird?
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16145

beantworten | zitieren | melden

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

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 399
Herkunft: Germany

Themenstarter:

beantworten | zitieren | melden

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?
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4175

beantworten | zitieren | melden

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. ;-)
private Nachricht | Beiträge des Benutzers
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 399
Herkunft: Germany

Themenstarter:

Gelöst

beantworten | zitieren | melden

Alles klar, habe das mit dem Link gefunden, nun passt das.
Danke.
private Nachricht | Beiträge des Benutzers