设为首页
优惠IDC
收藏本站
六狼博客
六狼论坛
开启辅助访问
切换到窄版
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
只需一步,快速开始
快捷导航
门户
首页
BBS
云计算
大数据
手机
移动开发android,ios,windows phone,windows mobile
编程
编程技术java,php,python,delphi,ruby,c,c++
前端
WEB前端htmlcss,javascript,jquery,html5
数据库
数据库开发Access,mysql,oracle,sql server,MongoDB
系统
操作系统windows,linux,unix,os,RedHat,tomcat
架构
项目管理
软件设计,架构设计,面向对象,设计模式,项目管理
企业
服务
运维实战
神马
搜索
搜索
热搜:
php
java
python
ruby
hadoop
sphinx
solr
ios
android
windows
centos
本版
帖子
用户
六狼论坛
»
首页
›
编程技术
›
MicroSoft
›
Silverlight
›
RIA造成XAP无修改重打包问题的解决办法
返回列表
查看:
313
|
回复:
0
RIA造成XAP无修改重打包问题的解决办法
[复制链接]
网助的工作随记
网助的工作随记
当前离线
积分
14
窥视卡
雷达卡
升级
28%
当前用户组为
童生
当前积分为
14
, 升到下一级还需要 36 点。
4
主题
4
主题
4
主题
童生
童生, 积分 14, 距离下一级还需 36 积分
童生, 积分 14, 距离下一级还需 36 积分
积分
14
发消息
楼主
|
发表于 2013-1-2 23:17:48
|
显示全部楼层
|
阅读模式
RIA造成XAP无修改重打包问题的解决办法
<div id="cnblogs_post_body">
RIA提供了将Web工程上的域服务自动转到silverLight工程上的客户端的机制,也就是.net代码转为sl代码的过程。
正常情况下,如果一个工程没有修改,编译时会保持上一个版本,其输出文件的修改时间不会变动。但在开发中,发现开启了RIA链接的SL工程每次都在重新生成输出文件,尽管源Web工程和SL工程都没有任何人为的修改。
下面,先建一个例子说明问题:
选择业务模板:
生成两个工程:
右键点客户端工程,选择生成:
首次编译结果:
什么都不改,再次选择生成,结果:
就和图片上一样的,第2次编译和第1次没什么不同,又重新打了一次包。
如果现在还不明白这个问题,可以随便新建一个类库工程或其它,看是否会出现这种情况。
现在的问题是不论是否更改了代码,都会重新编译,重新打包。这会造成什么问题?
在程序方面,
首先如果设置版本自动,每次编译都会修改版本号。且输出文件每次都会变更时间。
其实这里
主要是
指开启了设置RIA链接的SL库工程,会导致依赖于其的所有SL库或应用工程重编,工程大时会浪费很多编译时间。
重要的影响在用户,每次浏览都会被强制重新下载XAP。
如果程序使用SL缓存,至少需下载一个XAP包,如果没有使用SL缓存,那么包含整个工程的XAP就要被重新下载。IE浏览器总会检测到XAP等包是新的,造成浏览器层的缓存机制无效。
直接来看解决这个问题的结果,也就是正常情况应该出现结果:
现在可以看到,XAP没有重新打包,这是正常的,因为没有代码修改。
出现问题的原因,可以用一句话来描述,RIA框架每次转换域服务时,不管代码是否修改,都会在SL工程重新生成客户端的代码。
下面是解决办法,在sl工程和生成前事件,调用一个程序,不让VS重新编译。
此方法用于开启了RIA链接的SL应用程序工程和SL库工程。
格式:x:\xxxxxxx\RiaCodeKeep $(ProjectDir) 前面是
执行程序
+空格+工程目录宏(如有空格目录需加双引号。因有时把bin放到外面,所以需要指定这个工程目录)
因为修改生成事件,也算一次修改,所以效果下次的下次编译才可以看以看到。
每次编译时,会在启动一个最小化的窗口,在任务栏点开,显示一些工作状态,这个窗口会自动关闭,可以不看,点开这是样的。
窗口内信息其实显示了工作原理,相信只要能遇到这个问题的都能理解,不赘述了。
最后特意说明,这个插件毕竟不是官方的,并不能百分百的防止无修改重编译。期待RIA的下个补丁会修正这个问题。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2008-2020
六狼论坛
(https://it.6wolf.com) 版权所有 All Rights Reserved.
Powered by
Discuz!
X3.4
京ICP备14020293号-2
本网站内容均收集于互联网,如有问题请联系
QQ:389897944
予以删除
快速回复
返回顶部
返回列表