Laden...

WPF Style global für mehrere Projekte möglich?

Erstellt von Jacyrio vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.452 Views
J
Jacyrio Themenstarter:in
197 Beiträge seit 2006
vor 8 Jahren
WPF Style global für mehrere Projekte möglich?

Hello,

hab mal wieder eine Frage zu WPF. Ich habe ein Projekt (WPF-Benutzersteuerelementbibliothek) erstellt das "Skins" heißt. Das Projekt verwende ich nur dafür, um Styles zu entwerfen. Die DLL habe ich in ein Projekt eingebunden und ändere damit das Aussehen meiner Controls usw.

Funktioniert soweit auch alles wunderbar. Ich könnte die DLL nun auch in andere Projekte einbinden und deren Aussehen damit ebenfalls verändern.

Nun stelle ich mir vor, meine Projekte landen auf verschiedenen Clients im Unternehmen. Nun möchte ich das Skin abändern und den Clients zur Verfügung stellen. So wie ich es bisher gemacht habe, müsste ich auf jedem Client die DLL wieder austauschen (viel Arbeit bei 120 PC-Arbeitsplätzen). Schöner wäre es also, wenn ich die DLL an einer zentralen Stelle im Netzwerk ablege und alle Projekte auf diesen Ordner bzw. diese DLL zugreifen.

Ich habe versucht im Projekt die Einstellung "lokale Kopie" auf False zu stellen. Dann erhalte ich einen Fehler. Das wäre aber eigentlich meine Lösung oder nicht? Gibt es noch eine andere Möglichkeit, bzw. sollte das mit der lokalen Kopie = False normalerweise funktionieren?

Vielleicht bin ich mit meiner Idee auch ganz auf dem Holzweg und man macht es ganz anders...

446 Beiträge seit 2004
vor 8 Jahren

Eine Assembly über eine Netzwerkresource laden halte ich für keine gute Idee.

Nun stelle ich mir vor, meine Projekte landen auf verschiedenen Clients im Unternehmen. Nun möchte ich das Skin abändern und den Clients zur Verfügung stellen. So wie ich es bisher gemacht habe, müsste ich auf jedem Client die DLL wieder austauschen (viel Arbeit bei 120 PC-Arbeitsplätzen).

Deine Anwendung musst du so oder so auf die Arbeitsrechner deployen - eine Assembly mehr spielt da auch keine Rolle.

Willst du die Skins mit der Zeit ändern, kannst du das über ein Software update machen. Siehe auch hier updateSystem.NET

Schaut mal im IRC vorbei:
Server: https://libera.chat/ ##chsarp

16.835 Beiträge seit 2008
vor 8 Jahren

Standardmäßig kann .NET keine DLL von einer unsicheren Ressource wie einem Netzwerklaufwerk laden; es gibt eine Exception (betrifft die sogenannte CAS Policy).
Alles andere; da kann ich nur Briefkasten zustimmen.

J
Jacyrio Themenstarter:in
197 Beiträge seit 2006
vor 8 Jahren

Danke.

Okay, dass mit dem Updatesystem wäre auch eine Alternative. Problem ist, dass die Seite nicht mehr existiert und der Download dementsprechend auch nicht. Ich hab im Internet nach einem anderen Link gesucht, aber irgendwie sind alle down.

Hat von euch jemand noch einen Link mit der neusten Version von der Anwendung?

P
1.090 Beiträge seit 2011
vor 8 Jahren

Du kannst einfach Click Once verwenden.
MSDN:ClickOnce-Sicherheit und Bereitstellung

Sollte man mal gelesen haben:

Clean Code Developer
Entwurfsmuster
Anti-Pattern

J
Jacyrio Themenstarter:in
197 Beiträge seit 2006
vor 8 Jahren

Hey Palin,

das System ist ja schon mal relativ cool.. habs mir gestern mal angesehen. Das System hat allerdings trotzdem einen Nachteil: Die Software wird nur pro Benutzer installiert, weil der Benutzer logischerweise keine Admin-Rechte hat.

Gibt es aber auch schon ein vorgefertigtes System, was in der Lage ist eine Software upzudaten, welches "Für alle Benutzer" installiert wurde? Als Beispiel nehme ich da unseren Virenscanner.. sobald ich da ein Update zur Verfügung stelle, starten auf den Clients die Updates (mit einer dazu gehörigen Meldung, dass ein Update verfügbar ist und der PC neu gestartet werden muss).

Ich vermute mal, dass läuft über ein Dienst.. da der Benutzer ja garnicht das Recht hat für "Alle Benutzer" updates zu machen..

Oder müsste ich mir für sowas selbst was programmieren?