如何管理Visual Studio 2010中不同版本的支持dll

本文关键字:版本 dll 支持 2010 Studio 何管理 管理 Visual | 更新日期: 2023-09-27 18:15:03

我有一个VB。net/c# Visual Studio 2010解决方案,其中包含一堆项目,这些项目依赖于来自一个供应商的大约30个第三方dll。这个第三方供应商最近发布了他们软件的新版本,所以我想并行测试他们的新软件和我的增强功能,直到我可以放心切换。在Visual Studio 2010中设置解决方案的最佳方法是什么?这样我就可以使用我在这些第三方dll上开发的代码,并有机会轻松地在以下代码之间切换:

(1)第三方dll的新版本[用于我的测试]和
(2)旧版本的第三方dll,以防我需要调试一些问题:用户有

第三方程序集不在GAC中(它们目前在网络驱动器上的文件夹中)。它们不是强符号(运行sn -vf)。它们从版本5.4.618.0更改为5.4.619.60。

如何管理Visual Studio 2010中不同版本的支持dll

我们处理这个问题的方法是在文件系统级别创建一个与项目/解决方案相关联的Assemblies文件夹。

当我们需要使用第三方dll时,它们会进入这个文件夹,并且项目中的引用会指向文件夹中的文件,而不是GAC中的版本。

这允许我们用新版本更新开发机器并测试它们。由于我们所有的代码,包括程序集,都存储在subversion中,如果我们需要测试客户有问题的版本,我们将该版本从subversion中检出到另一个目录中,这样我们就有了客户正在使用的版本的精确副本。

我们已经在一些非常大的项目中这样做了大约8年,对我们来说效果非常非常好。

可以使用绑定重定向和代码库组合对程序集进行逻辑分组。在需要支持同一程序集的多个版本的情况下,它也会有所帮助。如果程序集没有强命名或在GAC中找不到,则运行时将在您的计算机和应用程序配置文件中查找适用的codeBase元素。codeBase元素将程序集名称映射到文件或统一资源定位符(URL)。如果程序集是强命名的,codeBase可以引用任何位置,包括基于internet的url;否则,codeBase必须引用一个相对于应用程序目录的目录。

在Windows工作流的情况下,有多个版本的工作流是很常见的,并排执行。在这种情况下,程序集是强命名的,然后在web的代码库部分添加适当的条目。配置文件。您可以查看有关WF的任何标准文档,看看它是如何实现的。

如果只是一个较小的版本更改,并且这些库没有被签名,那么您可以直接交换出这些库。否则,你需要在app.config中添加绑定重定向,以指向新版本的先前引用,或者只需在第二个文件夹中创建第二个项目文件,其中包含更新后的引用。