Silverlight,减少xap大小设置,为什么dll仍然包括在内?

时间:2010-05-20 15:17:26

标签: silverlight

我使用了“通过使用应用程序库缓存减少XAP大小”设置。我看到一些dll现在被排除在.xap文件之外,但有些不是,特别是

System.Reactive.dll
System.Windows.Controls.DataVisualization.Toolkit.dll
System.Windows.Controls.Theming.Toolkit.dll
System.Windows.Controls.Toolkit.dll

知道为什么会这样吗?

感谢

2 个答案:

答案 0 :(得分:4)

“Reduce XAP size”功能只会将DLL留在XAP旁边,而DLL旁边有一个.extmap文件(例如,您可以查看\ Program Files(x86)\ Microsoft SDKs下的任何SDK程序集\ Silverlight \ vX.0 \ Libraries \ Client及其各自的extmap文件)。仍然包含的程序集可能要么缺少extmap文件,要么以某种方式不正确地定义。

答案 1 :(得分:3)

您使用的是什么版本的工具包?

在VS中打开References文件夹并选择其中一个dll。然后查看该引用的属性中的Path值。打开包含DLL的文件夹。

该文件夹中的当前应该是匹配的* .extmap.xml。此文件用于为dll创建外部zip文件。如果此文件不存在,则无论“通过使用应用程序库缓存减少XAP大小”设置,dll仍将包含在XAP中。

Toolkit的最新版本(适用于SL3的Nov09和适用于SL4的Apr10)都包含一组这些extmap.xml文件。但是,如果您将这些库文件复制到项目中(通常人们使用项目下的“Libs”子文件夹),那么您可能没有复制这些文件。