Warum MVVM Light System-Assemblies in den Anwendungsordner kopiert?

8

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.

  1. Erstellen Sie ein neues WPF-Anwendungsprojekt.
  2. Add NuGet-Referenz zu MVVM Light (oder der Lib-only-Version; spielt keine Rolle).
  3. Hinzufügen eines MSI-Setup-Projekts zur Lösung (die Erweiterung muss installiert sein) .
  4. Hinzufügen der primären Projektausgabe der WPF-Anwendung zum Setup-Projekt.

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?

Aktualisieren

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.

    
dotNET 31.07.2016, 09:18
quelle

1 Antwort

0

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.

    
Connell.O'Donnell 23.02.2017 17:39
quelle