2011-04-26 79 views
0

Hej全部, 我将项目解决方案从vs2008升级到vs2010。引用的项目x不存在

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

我能够添加引用(项目引用),但是当我建立我得到了警告被引用的项目x不存在。和我必须添加参考的错误。

我已经删除并重新添加项目,与参考文献相同但没有结果。

enter image description here

enter image description here

没有任何人有任何想法?

格尔茨,

乔纳森

+0

如果BrokenGlass的答案不适用于您,我一次或两次有同样的错误 - 通过删除损坏的参考,重建所引用的项目,然后添加参考回来解决。 但BG可能是正确的。 – AllenG 2011-04-26 14:58:51

回答

3

确保您的项目不使用“.NET框架4客户端配置文件”作为目标框架,这是这些问题最常见的来源。

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

MSDN

如果你的目标.NET框架 4客户端配置文件,你不能 引用的组件是不是在 .NET Framework 4的客户端配置文件。 相反,您必须将.NET Framework 4作为目标。有关详细信息,请参阅 解决.NET Framework 定位错误。

3

我正经历着非常相同的问题,虽然我是正确的迁移,从2008年到VS VS 2010中的所有项目引用.NET 3.5(以系统组件的所有引用是使用一个运行时版本V2.0)。

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

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

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

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

我发现只有当现有文件是“只读”时才发生错误。只读删除标志解决了这个问题。但是,这个错误是我的初始问题的根源可能的标志:“被引用的项目”.. \ B \ B.csproj'不存在。“

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

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

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

项目文件路径的长度为 “195”: d:\ TFS_Builds \ 5 \ XXXX 1.1 \推出1.11 \源头\推出1.11 \异常储存库\ XXXXXX.Framework.ExceptionHandling.Repository.ServiceHost \ XXXXXX.Framework .Exception.Handling.Repository.ServiceHost

另外,因为当我试图找出问题的根源时,我可以非常有创意,我在C:\上创建了相同的路径,并将解决方案放在那里... ...相同发生了错误。

我从来没有找到(至今)这个原因,并在MSDN上发布了一个问题:http://social.msdn.microsoft.com/Forums/en/msbuild/thread/f0eb6aed-5854-4678-9546 -09c1a7705e30

+0

底部的链接对我来说有问题的答案!非常感谢! – user555265 2012-01-09 14:34:04

0

以下是固定我的问题: 我有一个指向同一个名为“Utilities.Proxy3.5”项目,这会给我以下警告:

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

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

我希望这会帮助某人。

0

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

然后打开顶部的项目,它会工作。

显然这是VS创建原始项目的版本问题。

好运

0

检查以下长度:

  1. 的参考项目的目录的路径
  2. 到项目中的相对路径它引用

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

2

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

+1

我刚刚也有类似的问题。我收到了错误,但引用分支中没有引用。所以我也打开了csproj文件,发现有10个引用不存在的文件夹!我将它们全部删除并解决了问题。 – Andrew 2017-03-14 10:16:47

相关问题