假如你的解决方案中有两个Silverlight项目,其中的DLL文件时两个SL项目都使用到的,为了能够最大程度的减小XAP包的体积,你选择了系统的这个选项

编译后在Web的ClientBin文件夹下会出现这样的结构

这样呢,两个项目共享这些DLL的压缩文件,每个项目的XAP便缩小了。

但是,我们一旦选择了OOB功能,便发现不能够再选择系统自带的减小xap的功能了,怎么办呢,于是,我们在选择OOB的基础上编译了项目。于是便生成了这个结构

我们还是想将两个xap包中共有的DLL抽取出来,怎么办呢,将ProjectA.xap改写为ProjectA.zip,然后解压后看到

---解压后---

打开AppManifest.xaml后可以看到

<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" EntryPointAssembly="ProjectA" EntryPointType="ProjectA.App" RuntimeVersion="4.0.50401.0"><Deployment.OutOfBrowserSettings><OutOfBrowserSettings ShortName="ProjectA Application" EnableGPUAcceleration="False" ShowInstallMenuItem="True"><OutOfBrowserSettings.Blurb>ProjectA Application on your desktop; at home, at work or on the go.</OutOfBrowserSettings.Blurb><OutOfBrowserSettings.WindowSettings><WindowSettings Title="ProjectA Application" /></OutOfBrowserSettings.WindowSettings><OutOfBrowserSettings.Icons /></OutOfBrowserSettings></Deployment.OutOfBrowserSettings><Deployment.Parts><AssemblyPart x:Name="ProjectA" Source="ProjectA.dll" /><AssemblyPart x:Name="ProjectB" Source="ProjectB.dll" /><AssemblyPart x:Name="System.Windows.Controls" Source="System.Windows.Controls.dll" /><AssemblyPart x:Name="Telerik.Windows.Controls" Source="Telerik.Windows.Controls.dll" /></Deployment.Parts></Deployment>

于是就设想能不能将下面两个DLL独立出来放到xap的外面呢,

<AssemblyPart x:Name="System.Windows.Controls" Source="System.Windows.Controls.dll" />

<AssemblyPart x:Name="Telerik.Windows.Controls" Source="Telerik.Windows.Controls.dll" />

基于这个想法有两种思路,

第一种是按照普通非OOB方式来改写配置文件

<Deployment.ExternalParts><ExtensionPart Source="System.Windows.Controls.zip" /><ExtensionPart Source="Telerik.Windows.Controls.zip" />
</Deployment.ExternalParts>

并将DLL压缩放到ClientBin下

本以为会顺利运行,不曾想却跳出个错误

于是想到第二种,直接改写OOB方式得配置文件为

<AssemblyPart x:Name="System.Windows.Controls" Source="../System.Windows.Controls.dll" />

<AssemblyPart x:Name="Telerik.Windows.Controls" Source="../Telerik.Windows.Controls.dll" />

无奈还是出现了错误,

关于在OOB开启的情况下将xap包中的DLL抽取出来,如果不考虑动态加载这些DLL,您有好的办法吗,欢迎讨论。

转载于:https://www.cnblogs.com/wengyuli/archive/2010/08/19/two_silverlight_project_one_dll.html

关于Silverlight中多项目共享DLL文件的讨论相关推荐

  1. 技巧:在Silverlight中如何访问外部xap文件中UserControl

    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://terrylee.blog.51cto.com/342737/87094 ...

  2. 计算机丢失qt5sql.ll,电脑中提示丢失Qt5core.dll文件的解决方法

    ‍ 有的用户可能会在电脑中发现无法运行一些软件或者游戏程序,原因是由于缺少一些必要的dll文件.如果在电脑中提示丢失Qt5core.dll文件,那么应该怎么解决呢?大家不妨参考下面介绍的解决方法. 1 ...

  3. linux共享文件可读写,在Ubuntu中设置samba共享可读写文件夹

    在Ubuntu中设置samba共享可读写文件夹 发布时间:2007-03-15 01:01:08来源:红联作者:XLooking 首先当然是要安装samba了,呵呵: sudo apt-get ins ...

  4. pom文件找不到子项目_java,eclipse_eclipse中maven项目pom.xml文件找不到parent要怎么解决?,java,eclipse,maven - phpStudy...

    eclipse中maven项目pom.xml文件找不到parent要怎么解决? 在maven项目中方pom.xml文件找不到parent,maven clean报错如下: [ERROR] [ERROR ...

  5. 【VS实践】VS解决方案中出现无法生成DLL文件

    前言: 这几天在学习牛腩新闻发布系统,突然发现标准的过程原来是从D层倒着往U层敲,在敲的过程中,遇到了一个问题:D层生成的DLL文件,在B层和U层中使用不了! 从早上10:00~15:30,自己弄了好 ...

  6. Windows程序中的Lib和Dll文件

    共有两种库: 一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library. 一种是LIB包含 ...

  7. ILRuntime(二)整合Hotfix到Unity中,脚本生成dll文件

    如果开发的时候按之前的一个Hotfix工程,一个Unity工程,开发会很麻烦.因此我们可以把Hotfix部分的代码放入到Unity当中,并增加一个标记,到时候把这些代码整合成一个dll文件即可. 具体 ...

  8. 计算机丢失quartz.dll什么意思,win7系统中出现缺少quartz.dll文件的修复方法

    我们在win7系统电脑的使用中,有小伙伴发现系统的提示缺少quartz.dll文件没有了,这是怎么回事呢,今天小编就来跟大家分享一下win7系统下提示缺少quartz.dll文件的解决方法,如果你的电 ...

  9. linux中,项目生成的文件的权限为-rw-r-----

    前言 centos7.6 tomcat8.5 springboot 2.0.3.RELEASE 项目生成的文件的权限为-rw-r----- 项目中有个定时器,负责每分钟静态化一次首页,即每分钟生成一次 ...

最新文章

  1. “机器学习还是很难用!”
  2. linux 系统监控和进程管理
  3. python手机版下载3.7.2-Python3.5.2
  4. httpClient学习笔记1
  5. java 类型 转换 valueOf和parse...
  6. C#获取上传文件的扩展名
  7. Win10台式机前面板耳机无声音,没有Realtek高清晰音频管理器,前置耳机孔无法使用
  8. log4j配置文件位置详解
  9. 图像处理之图像复原[逆滤波、维纳滤波、约束最小二乘法、Lucy-Richardson和盲解卷积复原]
  10. 【Cousera】北京大学 | 计算导论与C语言基础习题_8:最长平台
  11. 微信分享次数统计、微信公众号分享关注统计
  12. 这可能是全网最全的车载OS整理
  13. Windows10修改本地用户账户名(彻底修改)
  14. 年度指南-Web网页开发学习总纲-2023修订版
  15. Python基础 编写项目 学生管理系统
  16. Anroid BLE蓝牙(手机分别作为中心设备和外围设备)
  17. 我所学到的EC-1(个人学习总结,不能保证正确,欢迎大佬指正)
  18. 记一次安装centOS7.X遇到的i8042 i8042 no controller found和安装源感叹号
  19. 常见密码pojie工具
  20. lisp取两直线交点画圆_求过圆心直线与圆的两个交点

热门文章

  1. python如何编写数据库_如何在几分钟内用Python编写一个简单的玩具数据库
  2. 倦怠和枯燥_启动倦怠
  3. 计算机32位操作系统最大识别到内存,win7 32位系统可以支持多大的内存_win7 的32位系统最大支持多少g的内存...
  4. java登陆界面连接数据库_java 登陆界面怎么写,连接数据库后
  5. 妙用vector:根据第一个不等的元素比较两个序列大小的利器
  6. Python中的类、模块和包究竟是什么?
  7. 2019最新版本的PanDownload纯净版,网盘满速下载和搜索神器,追剧和动漫新番必不可少的下载工具【亲测有效】
  8. python基础04
  9. js 实现精确加减乘除运算之BigDecimal.js
  10. django 2.0路由配置变化