2016-07-28 3 views
0

Ich versuche zu verstehen, wie das Target-Framework eines Projekts verwendet wird und wie es sich auf das Laden von Assemblys auswirkt. Hier ist das Problem.Wie wirkt sich das "Zielframework" auf die Art und Weise aus, wie die machine.config und GAC mit Visual Studio verwendet werden?

In der Visual Studio 2015-Community ist mein Standardziel-Framework .NET 4.6.1. Bei dieser Einstellung habe ich NuGet verwendet, um Npgsql 3.0.7 als Treiber für die lokale Back-End-PostgreSQL-Datenbank zu installieren. Wenn

DbProviderFactories.GetFactory mit (Providername)

VS berichtet, dass der Provider nicht gefunden werden konnte. (Diese nach Npgsql 3.0.7 wurde in machine.config und dem GAC installiert.)

Bei der Erforschung dieser (DbProviderFactories Demystified) wird die Aussage gemacht, dass

DbProviderFactories einfach ruft Type.GetType Assembly zu laden und Erstellen Sie eine Instanz des Typs.

Was mich dazu führte, Npgsql 3.0.7 ein wenig mehr zu erforschen. Wenn NuGet die Baugruppe installiert, es stellte sie bei

C: ... \ packages \ Npgsql.3.0.7 \ lib \ net45 \ Npgsql.dll

Unter der "net45" als .NET 4.5 habe ich das Zielframework des Projekts in .NET 4.5.2 geändert. Nach dem Wiederaufbau läuft alles gut ohne Warnung oder Fehler.

Wie beeinflusst das "Zielframework" die Art und Weise, wie die machine.config und GAC verwendet werden?

Danke für jede Erklärung (oder Referenz).

Hinweis: Es gibt nie eine Warnung in Projektmappen-Explorer, dass der Npgsql Baugruppe mit .NET 4.6.1

Antwort

1
unvereinbar ist

Compilation aus der Laufzeitausführung getrennt ist. Wenn Sie ein Zielframework auswählen, überprüft Visual Studio/MSBuild die Referenzassemblys im Zielprofil, um das Projekt zu kompilieren.

Zur Laufzeit entscheidet das erste Windows, welches .NET Framework installiert werden soll. Dann würde diese Version von .NET Framework entscheiden, wie das Programm mit seinen GAC und machine.config (und anderen Bits) ausgeführt wird.

Die NuGet-Version net45 bedeutet .NET Framework 4.5 und höher.

Verwandte Themen