我偶然发现了一个奇怪的问题,就是标题中提到的,mscorlib.dll的SDK和运行时版本并不相同。
在我的系统中,我有dll在这里:
运行时:c:\ Program Files(x86)\ Microsoft Silverlight \ 4.0.60831.0 \ SDK:c:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ Silverlight \ v4.0 \
MSDN helppage清楚地表明AppDomain.GetAssemblies包含在Silverlight 4中(http://msdn.microsoft.com/en-us/library/system.appdomain.getassemblies(v = VS.95).aspx)< / p>
mscorlib.dll的运行时版本确实有方法 - 但SDK版本没有。程序集具有相同的版本(2.0.50727)。
为了让事情变得更奇怪,VisualStudio中的对象浏览器将引用的mscorlib.dll的路径显示为SDK版本,但是当深入研究它时,它显然已经使用GetAssemblies方法获取了runversion!
额外的转折:在Silverlight 5 beta中,2个库是相同的,但不包括AppDomain.GetAssemblies。