Visual Studio 中的引用程序集和公共程序集之间有什么区别?



我一直在研究Visual Studio 2013中Web性能测试插件的一些问题。添加对必要 dll 的引用时(例如 Microsoft.VisualStudio.QualityTools.WebTestFramework.dll ) 我注意到"添加引用"窗口中有多个条目可用于同一 dll。在我的系统上,我有五个WebTestFramework选择。

我看到其中一些来自早期版本的Visual Studio,这些版本也安装在我的机器上。但是,我看到有些是重复的,例如:

C:Program Files (x86)Microsoft Visual Studio 12.0Common7IDEReferenceAssembliesWebTestFramework.dll

C:Program Files (x86)Microsoft Visual Studio 12.0Common7IDEPublicAssembliesWebTestFramework.dll

我比较了这两个文件的哈希值,它们是相同的。那么,为什么它们在我的VS 2013(v12.0)安装中出现两次?为什么同时存在"ReferenceAssemblies"和"PublicAssemblies"文件夹?

理想情况下,实现程序集不会出现在列表中。 但是对列表中显示的内容的控制不够细粒度,它只能按目录配置,而不能按单个程序集配置。 另一个约束是,Microsoft经常被迫为程序集选择不太理想的存储位置,以保持与以前的 VS 版本的向后兼容性,以便它们不会破坏现有项目。 测试框架在VS版本中发生了很大变化,花了一段时间才解决所有怪癖。

当提供参考程序集时,始终选择一个。 它们旨在将您与这些快速更改隔离开来,并且通常故意不是实现程序集的副本。 当您选择实现程序集时,您将使其工作,但您可能会在下一个 VS 版本中损坏测试项目。 扬子晚报.

最新更新