Servus,
ich wollte in einem DLL Projekt meine Klassen erstellen, die ich in quasi jedem Projekt benötige, um sie dann zu "verteilen".
Dies habe ich auch soweit erledigt.
In den Projekten wo ich sie aufrufen möchte habe ich über einen Verweis die DLL "eingebunden". Wenn ich das Projekt über den Play Button im Visual Studio starte funktioniert es auch tadellos...
jedoch nicht wenn ich die Exe doppelklicke. Dann startet er das Projekt nicht (ohne Fehlermeldung).
Was ich versucht habe:
Wisst ihr was ich falsch mache?
jedoch nicht wenn ich die Exe doppelklicke
Meine Glaskugel vermutet, dass Du die Exe-Datei genommen und irgendwo anders hin kopiert hast. Damit fehlt der Exe natürlich die DLL, denn die ist nicht in der Exe drin bzw weitere Abhängigkeiten, die die DLL benötigt.
Du musst alle Abhängigkeiten, die eine Exe-Datei zur Ausführung benötigt, mitliefern. Auch die Abhängigkeiten der Abhängigkeiten.
Was genau der Exe Datei fehlt siehst Du entweder im Event Log von Windows oder via Dependency Walker.
Um das Problem zu lösen bettet man entweder alle Abhängigkeiten in die Exe ein oder verwendet Installer.
Create a single file for application deployment - .NET
Eine DLL verteilen ist üblichen von Hand der falsche Weg. Im Endeffekt sieht .NET zwei Wege vor:
Das händische Verteilen von DLLs bringt in 99% Probleme mit (nicht nur in .NET), weswegen quasi jede Runtime eigene Paketmanager hat, die sowohl mit privaten wie auch mit öffentlichen Feeds funktionieren.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Sry falls ich nicht ausführlich genug war.
Danke für den Link, ich schaue es mir gleich mal an!