我使用了“通过使用应用程序库缓存减少XAP大小”设置。我看到一些dll现在被排除在.xap文件之外,但有些不是,特别是
System.Reactive.dll
System.Windows.Controls.DataVisualization.Toolkit.dll
System.Windows.Controls.Theming.Toolkit.dll
System.Windows.Controls.Toolkit.dll
知道为什么会这样吗?
感谢
答案 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”子文件夹),那么您可能没有复制这些文件。