注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 4万亿投资与北大之死
 帮助

多程序集版本冲突问题


2007-11-11 14:53:45
 标签:版本冲突   [推送到技术圈]

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://wangjierui.blog.51cto.com/186879/50086
不能将项目“PID”中的依赖项“DXFCore, Version=1.0.1021.11237, Culture=neutral”复制到运行目录,因为它将改写引用“DXFCore, Version=1.0.2211.29717, Culture=neutral”。
当你一开始的设计混乱无比,各个组件相互引用十分复杂的时候,这个警告或错误就会出现。
假设有一个项目同时被三个不同的项目引用,三个中的一个被三个中的另一个引用,而这三个项目又被另一个引用……好了,我已经头晕了,而vs不会晕,它会老实的根据生产顺序来生产这些程序集。这样先生产的有一个版本号,后来生成的又有一个版本号,最后的结果是你要用同一个程序集的不同版本来运行,而很明显,一个程序集只需要一个,这样问题就来了:vs想要替换掉先进来的dll,但是这个dll是另一个项目生产所必须的……轻的只是警告,严重的时候产生错误会让你无法编译项目!
要解决这个问题,先要说一下程序集的版本控制…(此处省略100字)…好了,现在明白了吧,对这个问题最简单的解决办法就是找到项目的AssemblyInfo.cs文件,将里面的[assembly: AssemblyVersion("1.0.*")]改成你自己的版本号,比如[assembly: AssemblyVersion("1.0.3")]。这样程序集的版本就不会自己调节,而是根据你指定的版本数字来定。这样子不论你把项目编译多少次,版本号始终是你自定义的那个号码,而最后的结果就是不会出现本文标题所示的错误了。

本文出自 “王杰瑞的技术博客” 博客,请务必保留此出处http://wangjierui.blog.51cto.com/186879/50086





    文章评论
 
2007-11-12 09:13:41
光棍节快乐,:-),虽说你不过!

2007-11-20 10:45:00
在vs2005中不会出现这样的问题了,为什么呢,因为它已经帮我们把AssemblyVersion默认的锁定在1.0.0.0了

 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: