不能将项目“DataControl”中的依赖项“Database, Version=1.0.1021.11237, Culture=neutral”复制到运行目录,因为它将改写引用“Database, Version=1.0.2211.29717, Cul


不能将项目“DataControl”中的依赖项“Database, Version=1.0.1021.11237, Culture=neutral”复制到运行目录,因为它将改写引用“Database, Version=1.0.2211.29717, Culture=neutral”。
当你一开始的设计混乱无比,各个组件相互引用十分复杂的时候,这个警告或错误就会出现。
假设有一个项目同时被三个不同的项目引用,三个中的一个被三个中的另一个引用,而这三个项目又被另一个引用……好了,我已经头晕了,而vs不会晕,它会老实的根据生产顺序来生产这些程序集。这样先生产的有一个版本号,后来生成的又有一个版本号,最后的结果是你要用同一个程序集的不同版本来运行,而很明显,一个程序集只需要一个,这样问题就来了:vs想要替换掉先进来的dll,但是这个dll是另一个项目生产所必须的……轻的只是警告,严重的时候产生错误会让你无法编译项目!
要解决这个问题,先要说一下程序集的版本控制……好了,现在明白了吧,对这个问题最简单的解决办法就是找到项目的AssemblyInfo.cs文件,将里面的[assembly: AssemblyVersion("1.0.*")]改成你自己的版本号,比如[assembly: AssemblyVersion("1.0.3")]。这样程序集的版本就不会自己调节,而是根据你指定的版本数字来定。这样子不论你把项目编译多少次,版本号始终是你自定义的那个号码,而最后的结果就是不会出现本文标题所示的错误了。


如果你恰好被这个问题所困扰,那就快去试试吧 :)

ps:大概半年没有些技术文章了吧??这个问题是这几天把我弄的头痛的厉害,因为要修改的是前人留下的东西。一开始无论如何都不能编译!后来我试着在配置管理器中设置那些被重复引用的项目只被编译一次,一开始还有效,都后来自己都被弄晕了。也许是否极泰来,哈,我突然就想到了版本号在AssemblyInfo.cs文件里有控制……最后问题圆满解决了。这也告诉我们,碰到问题,不要想到一个办法就急着去尝试,稍微多想一想,说不定更好的办法就在不远处……好像到现在为之有些唐僧了,呵呵,那就到这里吧。
顺便祝大家新年快乐 :)

 

其实根本原因不在这里,msdn里有篇文章说得很清楚了。
http://msdn2.microsoft.com/zh-cn/library/0z1t9z56.aspx 

 

警告:不能将项目“project”中的依赖项“file”复制到运行目录,因为它将改写引用“file”。 

 

依赖项之间存在冲突;为使应用程序运行,应将多个具有相同名称的不同的程序集文件复制到 bin 目录中。由于其中一个依赖项是主引用,因此运行目录能够解决该冲突。

双击该任务列表项会将您带到正发生冲突的主引用节点。

当具有依赖项冲突,但是已经通过将其中一个冲突依赖项添加为引用而解决此冲突时,发生该警告。或者,您可能已具有版本 1 引用,然后再添加第二个引用,该引用本身又引用第一个引用的版本 2。

也就是说,此错误的发生是因为解决方案中的项目之间相互引用,但这些引用被创建为文件引用(使用添加引用对话框中的“浏览”按钮),而不是项目到项目的引用(使用“添加引用”对话框上的“项目”选项卡)。项目到项目的引用的好处在于,它在生成系统中创建了项目之间的依赖项,因而如果从上次生成引用项目之后依赖项目发生了更改,就将生成该依赖项目。文件引用则不建立版本的依赖关系,因此有可能生成了引用项目而没有生成依赖项目,于是引用会变得过时;一个项目能引用该项目以前生成的版本。这会导致在 bin 目录中要求的单个 DLL 有几个版本,这是不可能的,因此就会出现此错误信息。

每当在 bin 目录中出现冲突并且应用程序不能正确工作时,就出现此消息。即使解决了此问题,该警告仍然会出现,因为项目系统不能确定依赖项的版本是否能与所有组件一起正确工作。

更正此错误

请参见

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值