Durch das Hinzufügen der MVVM Light-Referenz zu einem WPF-Projekt wird eine große Anzahl von Systemassemblys zur Liste der Abhängigkeiten im zugehörigen MSI-Setup-Projekt hinzugefügt. Diese Assemblys (50+ an der Zahl) werden dann in den Anwendungsordner kopiert, wenn die App installiert wird. Wieso ist es so? Warum kann es nicht direkt von GAC aus referenziert werden?
Hinweis: Lokale Kopie -Option ist für MVVMLight.dll auf True festgelegt. Ich kann es natürlich nicht auf False setzen.
Die Wiedergabe ist sehr einfach. Ich benutze VS2015 Community.
Da gehst du hin. Eine lange Liste von System.X.Y wird zur Liste hinzugefügt. Wenn Sie das Setup-Projekt erstellen und installieren, sehen Sie alle diese DLLs im Ordner "Programme".
Warum? Und wie man es repariert?
Das Problem tritt nicht auf, wenn die WPF-Anwendung auf .NET Framework 4.0 abzielt und Sie anschließend eine NuGet-Referenz hinzufügen. Wenn Sie jedoch auf .NET 4.5, 4.5.1 oder 4.6 abzielen, wird die lange Liste der Abhängigkeiten erneut angezeigt. Think MVVM Light (oder NuGet) hat Probleme, den richtigen Paketunterordner zu finden.
Ich weiß nicht, warum es passiert, aber ich kann einen Workaround anbieten. Öffnen Sie einfach den Ordner Erkannte Abhängigkeiten des Projekts, wählen Sie alle System-DLLs aus, klicken Sie mit der rechten Maustaste und wählen Sie Ausschließen.
Tags und Links wpf visual-studio windows-installer mvvm-light