【发布时间】:2011-06-22 12:51:31
【问题描述】:
在我的 Windows Azure 角色 C# 代码中,我执行以下操作:
Assembly.Load( "Microsoft.WindowsAzure.ServiceRuntime" );
FileNotFoundException 被抛出。问题是存在具有此类名称的程序集,甚至在运行上述代码之前就已加载 - 我在调试器“输出”窗口中看到相应的行,当我这样做时:
AppDomain.CurrentDomain.GetAssemblies().Any(
assembly => assembly.FullName.StartsWith("Microsoft.WindowsAzure.ServiceRuntime"));
结果是true,如果我使用Where(),那么SingleOrDefault() 我会得到一个对相应Assembly 对象的引用。
为什么我不能用Assembly.Load() 加载程序集?
【问题讨论】:
-
也许不是这个程序集,而是它的依赖项之一,例如本机 dll 丢失了?
-
@Armen Tsirunyan:也许吧,但是已经加载了相同的程序集——我在调试器输出中看到了。
-
我转向使用绝对路径:
Assembly.LoadFrom(path),我在网络服务器上,我使用路径为string path = HttpRuntime.AppDomainAppPath + "bin\\XXXX.dll"
标签: c# .net reflection azure