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...
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
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.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
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?
Du kannst einfach Click Once verwenden.
MSDN:ClickOnce-Sicherheit und Bereitstellung
Sollte man mal gelesen haben:
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?