内容显示页
 
类别:.Net + C# | 浏览(203) | 2011-11-12 13:33:59

  AssemblyVersion对程序集间的引用很重要,此版本号一般不能随便改,也不要让其自动生成,解释:

  类库ClassA设置:[assembly: AssemblyVersion("1.0.0.*")]

  类库ClassB引用了ClassA

  如果对ClassB重新生成,则ClassB将关联ClassA(假设AssemblyVersion为1.0.0.1),将生成的两个dll文件都Copy到某一目录CommonDLL,然后在ConsoleC项目里引用CommonDLL\ClassB.dll后,生成时会自动引用CommonDLL\ClassA.dll到ConsoleC项目的bin目录下。

  而如果后来单独生成了ClassA.dll(假设AssemblyVersion为1.0.0.2),并替换CommonDLL下的这一个文件,此时生成ConsoleC项目时你会发现只有ClassB.dll而没有ClassA.dll,并且不会生成失败!但运行ConsoleC项目时会报错:
未能加载文件或程序集“ClassA, Version=1.0.0.1, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。


这个过程类似强命名,但又不是强命名,但dll间的引用就是使用这种方式来关联各DLL的。


但我们还是要实现版本功能,以便排错,这时我们可以使用[assembly: AssemblyFileVersion("1.0.5.0")],因为他只是个文件版本号,供人看的,类似备注一类的功能,不参与dll间的引用。或者保证每次这些版本间的引用都正确,但这个在开发阶段很难做到,可以在产品发布的时候去做,但柳永法(yongfa365)'Blog觉得如果不是要做成强命名DLL,没必要这么做。
 


引用本页地址:http://www.yongfa365.com/item/DLL-Reference-By-AssemblyVersion.html
 
 
相关链接
 
网友评论:
1 欧美 - 2012-1-5 16:39:54
只想说一句好难啊
 
姓名: 记住我
网址:
邮箱:
内容:
验证码:  验证码图片 看不清? 换张图试试
 
     
 
 
文章分类
 
 
.Net + C#(73)
 
 
ASP+VBS(161)
 
 
 
Linux(10)
 
 
 
web 2.0(26)
 
 
 
 
 
心程(68)
 
生活(97)
 
 
     

Power by :柳永法(yongfa365)'Blog  | 京ICP备07011491号  QQ:64049027  E-mail:64049027@qq.com Weibo

申请友情链接 要求:跟本站主题相类似正规网站,双方交换为首页位置

转载请注明来源,以便后人及时得到最新、修正、加强版!!!