2014-04-08 4 views
8

Ich habe einige Probleme mit Web Performance Test Plugins in Visual Studio 2013 untersucht. Beim Hinzufügen von Verweisen auf die erforderlichen DLLs (zB Microsoft.VisualStudio.QualityTools.WebTestFramework.dll) habe ich festgestellt, dass es mehrere Einträge gibt für dieselbe DLL verfügbar im Fenster 'Referenzen hinzufügen'. Auf meinem System habe ich fünf Möglichkeiten für WebTestFramework.Was ist das Unterschied zwischen Referenz-Assemblys und öffentlichen Assemblys in Visual Studio

Einige von diesen sehe ich von früheren Versionen von Visual Studio, die auch auf meinem Computer installiert sind. Aber ich sehe, 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?

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, es kann nur nach Verzeichnis konfiguriert werden, nicht nach einzelnen Assemblys. 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, haben eine Weile gedauert, um alle Macken zu beseitigen.

Immer Wählen Sie die Referenzbaugruppe, wenn eine angeboten wird. Sie sind dazu gedacht, Sie vor diesen schnellen Änderungen zu schützen, und oft sind absichtlich keine Kopie der Implementierungsanordnung. Sie erhalten es, wenn Sie die Implementierungsassembly auswählen, aber Sie riskieren, dass Ihr Testprojekt in der nächsten VS-Version unterbrochen wird. YMMV.

+0

Wir haben versehentlich Komponententests über C# Klassenbibliothek Projektvorlagen und Einheit Test Projektvorlagen hinzugefügt. Die Entwickler, die die Klassenbibliotheken erstellt haben, haben Verweise auf die 'Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll' aus' ReferenceAssemblies' hinzugefügt, obwohl die Unit-Testvorlage sie aus 'PublicAssemblies' hinzufügt. Die Tests laufen für mich in VS 2013, aber nicht für einen anderen Entwickler, der VS 2012 ausführt. Weißt du, ob die Version von VS der Grund für diese Diskrepanz ist? – NickL

+0

Ich habe ein ähnliches Problem. Die Referenz-Assemblies können auf meinem Build-Rechner nicht gefunden werden, obwohl VS2013 und .Net Framework 4.5.1 beide installiert sind. Ich betreibe dieses Problem aktiv und werde es aktualisieren, wenn ich etwas Nützliches entdecke. – DubiousPusher

Verwandte Themen