首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Assembly.Load奇怪的行为

Assembly.Load奇怪的行为
EN

Stack Overflow用户
提问于 2009-12-30 20:40:03
回答 3查看 806关注 0票数 0

我在两台机器的GAC中安装了"Microsoft.Web.Services2.dll“V2.0.3.0。

我在他们两个中运行这行代码:

代码语言:javascript
运行
复制
Assembly.Load("Microsoft.Web.Services2, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35");

(注意版本是2.0.0.0,而不是2.0.3.0)

在一台机器上,这是失败的(正如我所期望的)。在另一种情况下,它可以工作,加载的dll是2.0.3.0。实际上,在这台机器上,每个低于3的版本都可以工作(并加载3)。

你如何解释这一点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-31 05:01:38

答案在这里:

http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/13a95aa8-4dc3-4b91-af19-c460c6e1fca6?prof=required

票数 0
EN

Stack Overflow用户

发布于 2009-12-30 20:43:34

也许您的bin文件夹中有Microsoft.Web.Services2.dll。检查程序集location

代码语言:javascript
运行
复制
var assembly = Assembly.Load("XXX");
Console.WriteLine(assembly.Location);
票数 0
EN

Stack Overflow用户

发布于 2009-12-30 20:51:00

这可能与加载“特定版本”标志有关。如果您检查Visual Studio中References文件夹中的程序集属性,它会显示一个"Specific Version“属性,我认为该属性指定是否链接到特定版本的程序集(默认值为false)。默认情况下,它会链接到任何特定的或更新版本的程序集,我想这就是这里发生的事情。

因此,Load方法本身可能有一些选项,用于指定是仅加载特定版本,还是在未找到特定版本时回退到较新的版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1980005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档