c#程序集位置解析

本文关键字:位置 程序集 | 更新日期: 2023-09-27 18:19:00

我有一个使用Microsoft.SqlServer.SMO.dll的项目,它总是复制到bin目录(CopyLocal设置为true)。

但是,可能会安装不同版本的SQL SMO。它们具有相同的汇编版本(10.0.0.0),但不同的文件版本(10.0.1600.22和10.50.2500.0)。最终用户可能已经将旧版本的程序集安装到GAC,但我需要始终从bin加载10.50。

所以,我有以下情况:

Bin -> 10.50.2500.0
GAC -> 10.0.1600.22

当我的应用程序运行时,GAC程序集被加载,而bin程序集被忽略。

我怎样才能防止这种行为?多谢。

c#程序集位置解析

您可以为应用程序提供您自己的清单,以告诉它您想要显式使用'bin'位置。这是一个中等大小的主题,但这是一个很好的链接,可以让你开始。

http://msdn.microsoft.com/en-us/library/1w45z383.aspx

这都是关于严格的版本控制。你引用的dll版本为10.50.2500.0,但你没有说它应该是这个版本。

所以你要做的就是在你引用的程序集的属性中将Specific Version设置为true。这将保证正好加载这个版本