在c#中更改Dll版本的调用

时间:2013-08-16 12:18:45

标签: c#

有没有办法更改在c#中自动生成的dll的引用?

也就是说,实际上这个问题是基于我自己的问题,你可以在这里找到: https://stackoverflow.com/questions/18271116/sqlserver-batchparser-issue-while-trying-to-execute-sql-scripts-using-c-sharp

在我收到的异常中,我发现C#引用的是版本为“9.0.242.0”的sqlserver.batchparser.dll。但是当我检查我的程序集(C:\ Windows \ Assembly)时,我可以找到x86和64版本的版本“10.0.0.0”的同一文件。

那么,我是否可以更改调用此dll的当前方式以使其与新版本调用相同的dll?

3 个答案:

答案 0 :(得分:2)

当您管理项目的依赖项时(使用VS的解决方案资源管理器),您可以选择要使用的正确版本的程序集。

在您的情况下,看起来您的程序集已使用您的dll的9.0.242.0版本进行编译,并且计算机上仅存在10.0版本。因此,您可以更改项目依赖项中的程序集以使用正确的(10.0)版本,也可以将程序集的9.0版本放在应用程序的目录中。

答案 1 :(得分:1)

正如我在上面的评论中所说,either reference right dll version in the project。如果要同时使用两者,则使用外部别名概念或使用动态(c#4.0)。

您还可以尝试为引用为true的程序集设置特定的版本属性。默认情况下,它设置为false。右键单击引用下的程序集,然后单击属性。 find the attached image Reference for external alias concept

答案 2 :(得分:0)

您可以使用Assembly Binding Redirection。在web.configapp.config

中定义这些重定向