莫言科技

全过程、自定制,轻松实现跨 旅游集散中心自助游

票务与调度系统(独立版) 整合旅游集散中心资源,提供 自助半自助游自定义套餐

面向有志创业的人士、基于云 计算理念提供的创业产品

敬请期待

查看: 2868|回复: 3

[转]引用项目类库时dll.refresh文件的影响-凯发k8官网下载客户端

[复制链接]
发表于 2011-3-30 12:43:18 | 显示全部楼层 |
昨天,公司网站发布新版本,结果发现一个严重问题,其中一个类库没有自动更新,而是自动生成了一个过期版本。& u, e( g, y: r- b8 x9 w  q

" d& l  e1 r3 g: p4 l经过排查发现,原来和vss中的一个dll.refresh文件有关。
  p" w. |' a3 k, i$ u9 `8 f' ]" v4 `& e7 k, |
原因很简单:7 q8 e2 x  s* a2 f( ~3 }% u" q

) @6 z* d& d3 `- y2 w* @9 b) y( `7 c1。开发过程中,引用项目时,系统自动生成了该refresh文件,具体原因不明,似乎有时候项目引用不会生成此文件 t* s: n6 k, w7 e, v
5 z8 l" h( q- _" r
2。该refresh文件指定了自动更新dll的路径,如果是类库引用,其中会指定dubug或者release目录,这次出错的文件就是指定debug目录/ g! h( o$ s* o/ m3 h5 s
  }' {  r% r' `* ?! x- z
3。开发人员误将该文件签入vss代码库- p7 h7 b4 {3 d3 m0 z& a6 _$ _
; u1 q5 p1 ^6 e# x! l" e5 y) x
4。问题来了,该引用类库在第一期版本发布后多次变动,但接口无变化,所以都是单独生成该类库,然后只更新所有应用的对应dll(release版本),一直没有问题,但是,当某应用重新发布时,由于该项目bin目录中refresh文件的存在,导致自动以该文件指定路径更新dll,就导致了旧版本dll(debug版本)的发布$ s3 k: d x0 b  _4 s4 z

! o/ }6 f9 e  ]2 i( t* g  g/ t问题解决:. ]/ y: k) z, s& s7 s- z/ q" r
! w3 n8 ?9 n( \8 j; h! _/ e( \% w
删除应用中dll.refresh文件,重新发布应用即可
5 k, i, t! {  f  e, e2 {" m# e1 k0 @, d6 `% d/ m
遗留问题:) t: n* ]" d' p% x
- r7 r% ?  d1 y1 i( ^/ m; r' ?
dll.refresh文件是否生成的条件不明,排查中发现,同一个应用中引用多个类库,不是所有的引用都生成该文件,同样,同一个类库在多个应用中的引用,也不是都生成该文件。
[) s f9 g7 n3 x4 |* m6 u5 l1 e& }, f/ ^- m* ]5 i& y. t. e
 楼主| 发表于 2011-3-30 12:44:41 | 显示全部楼层
我自己在项目中,发现这个文件竟然不会根据配置管理器,自动地更新引用路径,我在配置管理器中,使用release的时候,该文件的路径竟然还是debug的路径

||archiver|莫言科技 ( )   

gmt 8, 2020-9-5 20:11 , processed in 0.058596 second(s), 10 queries , wincache on.

powered by x3.2

© 2001-2013

返回列表