天天看点

多程序集版本冲突问题

不能将项目“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")]。这样程序集的版本就不会自己调节,而是根据你指定的版本数字来定。这样子不论你把项目编译多少次,版本号始终是你自定义的那个号码,而最后的结果就是不会出现本文标题所示的错误了。

本文转自 王杰瑞 51CTO博客,原文链接:http://blog.51cto.com/wangjierui/50086,如需转载请自行联系原作者

继续阅读