Was ist der Unterschied zwischen Referenz-Assemblys und öffentlichen Assemblys in Visual Studio?

8

Ich habe einige Probleme mit Web-Performance-Test-Plugins in Visual Studio 2013 untersucht. Beim Hinzufügen von Referenzen zu den erforderlichen DLLs (zB Microsoft.VisualStudio.QualityTools.WebTestFramework.dll ) habe ich festgestellt, dass es mehrere Einträge für die gleiche DLL gibt. Fenster. Auf meinem System habe ich fünf Möglichkeiten für WebTestFramework.

Einige davon sind von früheren Versionen von Visual Studio, die auch auf meinem Computer installiert sind. Ich sehe jedoch, dass einige Duplikate sind, z. B .:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ReferenceAssemblies\WebTestFramework.dll

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies\WebTestFramework.dll

Ich habe die Hashes dieser beiden Dateien verglichen und sie sind identisch. Warum sind sie in meiner VS 2013 (v12.0) Installation zweimal vorhanden? Warum gibt es sowohl einen 'ReferenceAssemblies'- als auch einen' PublicAssemblies'-Ordner?

    
Holf 08.04.2014, 10:41
quelle

1 Antwort

8

Nun, im Idealfall erscheint die Implementierungsassembly nicht in der Liste. Aber die Kontrolle darüber, was in der Liste angezeigt wird, ist nicht fein genug genug, es kann nur nach Verzeichnis und nicht nach einzelnen Assemblys konfiguriert werden. Eine weitere Einschränkung besteht darin, dass Microsoft häufig gezwungen ist, weniger als wünschenswerte Speicherorte für eine Assembly auszuwählen, um die Abwärtskompatibilität mit früheren VS-Versionen aufrechtzuerhalten, so dass bestehende Projekte nicht unterbrochen werden. Und die Test-Frameworks haben sich durch die VS-Versionen sehr verändert, sie haben eine Weile gebraucht, um alle Macken auszubügeln.

Immer wählen Sie die Referenzbaugruppe aus, wenn eine angeboten wird. Sie sollen Sie vor diesen schnellen Änderungen isolieren und sind oft absichtlich keine Kopie der Implementierungsassembly. Sie erhalten es, wenn Sie die Implementierungsassembly auswählen, aber Sie riskieren, dass Ihr Testprojekt in der nächsten VS-Version unterbrochen wird. YMMV.

    
Hans Passant 08.04.2014, 12:30
quelle