默认情况下,Visual Studio将所有dll复制到每个项目的bin文件夹中。这也包括系统dll(mscorlib.dll和System.dll除外),例如System.Xml.Linq,System.ComponentModel.Composition(自SL4起包含)等。
由于这些文件包含在每个XAP中,因此XAP大小会大大增加。在我的有限测试中,将“复制本地”设置为false似乎没有任何改变。为什么Visual Studio将这些文件添加到bin路径?由于用户已经拥有Silverlight,我可以假定这些程序集已经安装在每个用户的GAC中还是丢失了某些东西?
最佳答案
您提到的文件不包含在Silverlight的运行时安装中。使用这些库的Silverlight应用程序必须将它们作为下载的一部分提供给用户。
您可以通过在项目属性页面的Silverlight选项卡中设置“使用库缓存减少XAP大小”选项来最大程度地减少某些影响。
此选项导致将每个文件放置在单独的Zip文件中,这些文件将与XAP放在同一文件夹中。
这在您的站点可能具有针对各种应用程序的多个Xap或您频繁发布新版本的情况下很有帮助。对于很少更改或受到许多唯一身份访问者欢迎的单个应用程序,它并不是那么有用。