关于Silverlight中多项目共享DLL文件的讨论
假如你的解决方案中有两个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文件的讨论相关推荐
- 技巧:在Silverlight中如何访问外部xap文件中UserControl
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://terrylee.blog.51cto.com/342737/87094 ...
- 计算机丢失qt5sql.ll,电脑中提示丢失Qt5core.dll文件的解决方法
有的用户可能会在电脑中发现无法运行一些软件或者游戏程序,原因是由于缺少一些必要的dll文件.如果在电脑中提示丢失Qt5core.dll文件,那么应该怎么解决呢?大家不妨参考下面介绍的解决方法. 1 ...
- linux共享文件可读写,在Ubuntu中设置samba共享可读写文件夹
在Ubuntu中设置samba共享可读写文件夹 发布时间:2007-03-15 01:01:08来源:红联作者:XLooking 首先当然是要安装samba了,呵呵: sudo apt-get ins ...
- 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 ...
- 【VS实践】VS解决方案中出现无法生成DLL文件
前言: 这几天在学习牛腩新闻发布系统,突然发现标准的过程原来是从D层倒着往U层敲,在敲的过程中,遇到了一个问题:D层生成的DLL文件,在B层和U层中使用不了! 从早上10:00~15:30,自己弄了好 ...
- Windows程序中的Lib和Dll文件
共有两种库: 一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library. 一种是LIB包含 ...
- ILRuntime(二)整合Hotfix到Unity中,脚本生成dll文件
如果开发的时候按之前的一个Hotfix工程,一个Unity工程,开发会很麻烦.因此我们可以把Hotfix部分的代码放入到Unity当中,并增加一个标记,到时候把这些代码整合成一个dll文件即可. 具体 ...
- 计算机丢失quartz.dll什么意思,win7系统中出现缺少quartz.dll文件的修复方法
我们在win7系统电脑的使用中,有小伙伴发现系统的提示缺少quartz.dll文件没有了,这是怎么回事呢,今天小编就来跟大家分享一下win7系统下提示缺少quartz.dll文件的解决方法,如果你的电 ...
- linux中,项目生成的文件的权限为-rw-r-----
前言 centos7.6 tomcat8.5 springboot 2.0.3.RELEASE 项目生成的文件的权限为-rw-r----- 项目中有个定时器,负责每分钟静态化一次首页,即每分钟生成一次 ...
最新文章
- “机器学习还是很难用!”
- linux 系统监控和进程管理
- python手机版下载3.7.2-Python3.5.2
- httpClient学习笔记1
- java 类型 转换 valueOf和parse...
- C#获取上传文件的扩展名
- Win10台式机前面板耳机无声音,没有Realtek高清晰音频管理器,前置耳机孔无法使用
- log4j配置文件位置详解
- 图像处理之图像复原[逆滤波、维纳滤波、约束最小二乘法、Lucy-Richardson和盲解卷积复原]
- 【Cousera】北京大学 | 计算导论与C语言基础习题_8:最长平台
- 微信分享次数统计、微信公众号分享关注统计
- 这可能是全网最全的车载OS整理
- Windows10修改本地用户账户名(彻底修改)
- 年度指南-Web网页开发学习总纲-2023修订版
- Python基础 编写项目 学生管理系统
- Anroid BLE蓝牙(手机分别作为中心设备和外围设备)
- 我所学到的EC-1(个人学习总结,不能保证正确,欢迎大佬指正)
- 记一次安装centOS7.X遇到的i8042 i8042 no controller found和安装源感叹号
- 常见密码pojie工具
- lisp取两直线交点画圆_求过圆心直线与圆的两个交点
热门文章
- python如何编写数据库_如何在几分钟内用Python编写一个简单的玩具数据库
- 倦怠和枯燥_启动倦怠
- 计算机32位操作系统最大识别到内存,win7 32位系统可以支持多大的内存_win7 的32位系统最大支持多少g的内存...
- java登陆界面连接数据库_java 登陆界面怎么写,连接数据库后
- 妙用vector:根据第一个不等的元素比较两个序列大小的利器
- Python中的类、模块和包究竟是什么?
- 2019最新版本的PanDownload纯净版,网盘满速下载和搜索神器,追剧和动漫新番必不可少的下载工具【亲测有效】
- python基础04
- js 实现精确加减乘除运算之BigDecimal.js
- django 2.0路由配置变化