smhy8187

 

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

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

问题表现:在编译一个解决方案的时候,所有的项目文件都可以编译通过,但是会出现这样一个警告:

不能将项目xxxxx中的依赖项“xxx, Version=1.0.1777.21016, Culture=neutral” 复制到运行目录因为它将改写引用“xxx, Version=1.0.1777.23397, Culture=neutral”。” 

 

问题造成的影响:程序在编译的时候,不能检测出引用XXX项目存在的类型错误.

 

解决方案:

1.      有网友的文章中说,将AssemblyInfo.cs文件中的版本号,改成固定的版本号,这样就不会产生类似上面的事情.

试验,但是那是没有用的,但是我还是建议这样来做.

2.      搜索MSDN,终于找到了正确的答案.

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

posted on 2006-07-21 17:32 喝酒的猫 阅读(289) 评论(2)  编辑 收藏 引用 网摘 所属分类: .NET1.1

评论

# re: 终于解决---警告:不能将项目“project”中的依赖项“file”复制到运行目录,因为它将改写引用“file”。 2006-07-21 23:12 Ronin

我也有遇到过同样的问题,有时候我会把他们加入到solution中去,进行编译。或者得到重新编译过的dll。但是,因为我的这个项目,一开始就是由很多dll组成的,把他们都加入到一个solution里面实在是编译起来太浪费时间。有什么好的解决方法么?  回复  更多评论   

# re: 终于解决---警告:不能将项目“project”中的依赖项“file”复制到运行目录,因为它将改写引用“file”。 2006-07-23 17:43 深夜醉猫

@Ronin

posted on 2006-12-06 10:01  new2008  阅读(287)  评论(0编辑  收藏  举报

导航