引用的项目x不存在

时间:2011-04-26 14:55:17

标签: c# visual-studio reference project

Hej All, 我将项目的解决方案从vs2008升级到vs2010。

但是现在我有一个奇怪的问题。我参考多个解决方案的项目(3个解决方案) 在其中两个解决方案中,引用错误。

我能够添加引用(项目引用),但是当我构建时,我收到警告,引用的项目x不存在。和错误,我必须添加一个参考。

我已经删除并再次添加了项目,与引用相同但没有结果。

enter image description here

enter image description here

有人有任何想法吗?

格尔茨,

乔纳森

6 个答案:

答案 0 :(得分:3)

确保您的项目没有使用“.NET Framework 4 Client Profile”作为目标框架,这是这些问题的最常见来源。

您可以在目标框架下的项目属性中进行检查。

来自MSDN

  

如果您的目标是.NET   框架4客户端配置文件,你不能   引用不在的程序集   .NET Framework 4客户端配置文件。   相反,你必须以.NET为目标   框架4.有关更多信息,请参阅   .NET Framework故障排除   针对错误。

答案 1 :(得分:3)

我遇到了同样的问题,尽管我在从VS 2008迁移到VS 2010的所有项目中正确引用了.NET 3.5(所有对系统程序集的引用都使用的是运行时版本v2.0)。

奇怪但是,如果我的解决方案(以及此解决方案的子文件夹中的项目)位于特定路径中,则只会出现错误...我可以通过移动项目或重命名项目来解决问题(仅限项目文件) ,而不是输出二进制文件)?!

双击项目中的引用正确打开了对象浏览器,在那里我可以找到引用项目中定义的所有工件!

我确实开始删除项目中的所有内容(类,资源,引用等)。最后,我只有两个项目(A引用B),没有任何其他引用,每个项目只有一个空类。我仍然有消息“引用项目'.. \ B \ B.csproj'不存在。”突然,尝试将源复制到另一台PC,然后再回到我机器上的原始路径(解决问题的黑魔法),我确实收到了“无法复制。结果文件名太长”的消息。

Wierd²!!!我确实删除了我电脑上的所有东西,并再次从其他电脑上复制了来源。它顺利通过了!我再次从其他PC重新复制(现在覆盖现有的本地副本)并再次收到消息“无法复制。结果文件名太长”。所以只有在覆盖现有文件时才会出现问题。

我发现仅当现有文件是“只读”时才会发生错误。删除标志readonly解决了这个问题。但是,这个错误是我最初问题的根本原因的迹象:“引用项目'.. \ B \ B.csproj'不存在。”

因此,我决定通过重命名其中一个文件夹但不更改总长度来检查项目路径长度是否是问题!错误仍然发生(未找到引用)。 接下来(我知道,你已经认为我疯了或愚蠢。但所有这些步骤都经过了各个同事的验证),我确实将解决方案复制到一个新的文件夹中(路径较长)。惊喜,错误不再发生了!!!

但是将解决方案移回到具有相同长度的文件夹(可能是另一个名称)是重新引入错误(在解决方案的“清理”之后,否则obj中的元帮助解决了参考)。

我还可以通过重命名项目文件B而不是路径中的文件夹来重现这一点。更长或更短的项目文件名正在解决此问题。

项目文件路径的长度为“195”: D:\ TFS_Builds \ 5 \ XXXX 1.1 \ Release 1.11 \ Sources \ Release 1.11 \ Exception Repository \ XXXXXX.Framework.ExceptionHandling.Repository.ServiceHost \ XXXXXX.Framework.ExceptionHandling.Repository.ServiceHost

此外,由于我在尝试确定问题的根本原因时非常有创意,因此我确实在C:\上创建了相同的路径并将解决方案放在那里......发生了同样的错误。

我从未找到(直到现在)其原因,并在MSDN上发布了一个问题:http://social.msdn.microsoft.com/Forums/en/msbuild/thread/f0eb6aed-5854-4678-9546- 09c1a7705e30

答案 2 :(得分:2)

我遇到了类似的问题,而上述解决方案并没有帮助。对我有用的是在文本编辑器中打开项目文件。存在对库的重复引用,一个作为项目引用,一个作为dll引用。我删除了两个。然后我在Visual Studio中打开了解决方案,并将引用重新添加为项目引用。只添加了一个参考,我停止了警告。

答案 3 :(得分:0)

这是解决我的问题的原因: 我对名为“ Utilities.Proxy3.5 ”的项目进行了参考,这会给我一个以下警告:

  

“引用的项目   '.. \ .. \ Utilities.Proxy3.5 \ Utilities.Proxy3.5.csproj'不存在。“

将项目文件夹和项目文件重命名为“ Utilities.Proxy35 ”并重新添加引用解决了问题。注意:我只删除了数字3和5之间的点。

我希望这会对某人有所帮助。

答案 4 :(得分:0)

我有同样的问题。 为我解决的是我首先打开了每个参考项目。 VS要求获得修复某些文件的权限。允许它这样做。

然后打开顶部项目,它将起作用。

显然,创建原始项目的VS版本存在问题。

祝你好运

答案 5 :(得分:0)

检查以下内容的长度:

  1. 引用项目目录的路径
  2. 它引用的项目的相对路径
  3. 如果这些路径加起来完全 259个字符,您将在Path.GetFullPath的.NET实现中遇到bug,这将导致VisualStudio 2010的行为就像引用的项目一样不存在。