元数据文件…在构build项目时无法find错误
每当我启动Visual Studio 2008时,第一次尝试运行该项目,我得到错误CS0006元数据文件…无法find。 如果我重build完整的解决scheme,它的工作原理。
有关解决scheme的一些信息:
-
我build立在debugging模式下,Visual Studio抱怨在发布文件夹中找不到dll:s。
-
Visual Studio抱怨的项目被解决scheme中的许多其他项目使用。
-
我已将所有项目的默认输出path分别更改为…… \ build \ debug \ ProjectName和…… \ build \ release \ ProjectName。 (只是为了获得所有的生成文件在一个目录中)
-
我有另一个解决scheme相同的问题。
-
解决scheme是从头开始创build的。
-
解决scheme中有9个项目。 一个WPF和8个类库使用dotnet 3.5。
任何想法是什么导致这个问题?
我有类似的问题,“元数据无法find”。 在解决scheme属性上,确保在构build/configurationpipe理器中为每个项目标记“构build”checkbox。
这通常是由与引发错误的解决scheme不同的解决scheme中引用的项目引起的。 如果您清理其他解决scheme,或者分支代码,则很可能会看到此错误。 解决方法是向下滚动“未find元数据”错误列表,并查看对项目的引用。 9/10次,你会看到一个不在这个解决scheme中的项目的引用。 添加项目以修复参考错误并重build。 这应该解决它。
(我今天刚刚遇到这个,过去也是这样,而且这个工作一直很顺利)
我有这个问题,不知道是否会帮助,但我的是由两个不同的解决scheme引用同一个项目的两个不同版本引起的。 当我build立解决scheme的第一个正确的项目的引用第二个解决scheme将build立罚款,但是,如果我清理第一个解决scheme,并尝试构build第二个解决scheme,它会失败,这些DLL参考错误消息。
对我来说,解决scheme是弄清楚我有两个同名的项目被意外地复制了,并删除了旧的不正确项目的引用,并添加了一个对新项目的引用。
在任何情况下,这些消息似乎都是一个红色的鲱鱼,我会检查你的构build输出,并find第一个项目,无法build立,并非常仔细检查该项目的参考。
另一件要validation的是path长度…这也导致元数据文件没有find和编译错误…我只是将我的文件夹更名为较短的path和voilá,没有被识别和保持黑色的类,只是通过重命名变成蓝色文件夹。
对我来说,我有一个在另一个项目中引用的项目。 它没有显示它在解决scheme资源pipe理器窗口中的参考列表中被打破,但我仍然删除并重读了它。 它现在build立得很好!
我在VS2012中经历了所有这些步骤,但是在构build整个解决scheme(单个项目没有错误地构build好的项目)时,我仍然一直遇到这个问题。
我发现,如果你在解决scheme资源pipe理器中右键点击你的解决scheme,并select“Build Order”,你可以看到VS用来重build你的解决scheme的顺序。 这很可能是失败的。
您可以通过单击“依赖关系”选项卡并select依赖解决scheme中其他项目的项目并检查它们所依赖的项目来更正构build顺序。 一旦你打好了,做一个解决scheme的重build,你应该很好去。
我过去在VS2005以及VS2008中所做的一切就是确保所有依赖项都是正确的,并且引用指向的不是dll项目。 然后通过依赖性顺序手动构build每个项目。 一旦最后一个build立,你可以运行一个完整的解决scheme构build和罚款。
这个答案是为他人未来的参考,因为我知道这个问题已经超过15个月了。
干杯
我想提出一些观点。
如果依赖MSBuild中的解决scheme文件作为构build文件,请确保将项目添加到解决scheme文件中,按照您希望构build的顺序,即基于项目的相互依赖顺序。 如果您在其他项目所依赖的解决scheme中包含项目,这将变得非常重要,但是引用已添加为“参考”而不是“项目参考”。
你应该避免像瘟疫一样,但是如果你确实需要这样做,那么至less要确保依赖项目出现在解决scheme文件的早期。
您应该记住,Visual Studio生成构build顺序的方式与MSBuild的方式不完全相同。 这是因为MSBuild主要依赖项目文件来告诉它依赖关系是什么,而Visual Studio也可以将它们保存在soltuion文件中。 因此,您有时可以看到Visual Studio完美地构build解决scheme的情况,但MSBuild无法完成。
我有几个实例,我不得不手动调整解决scheme文件中项目的显示顺序,以及项目在解决scheme文件的Web站点项目的ProjectReferences元素中列出的顺序。
我希望以上信息有帮助。
例如,如果使用LinqtoSQL Data上下文,并且缺less.designer.cs文件,则将无法find元数据文件错误。
重新创builddesigner.cs文件很容易。
使用xml视图打开dbml。 添加一个空白行,然后删除它,然后保存。 这应该重新生成您的designer.cs文件。
在某些情况下,如果你在你的数据上下文的代码隐藏中有代码,这个解决方法是行不通的。 在这种情况下,将代码从代码中移出并放在记事本中。 做的诀窍添加,然后从DC中删除一行并保存。 现在放回代码并保存。
每当我从SVN更新项目时,都有类似的问题。
ASP.NET的另一个解决scheme:
- closuresIDE。
- 删除
C:\WINDOWS\microsoft.net\framework\v…\Temporary ASP.NET File\
。
我也遇到过这个错误,原因是项目引用自己。 我不知道它是怎么发生的,但我只是删除了参考,瞧
首先确保在每个项目的“生成” – >“configurationpipe理器”中标记“生成”checkbox。
如果你已经在生成 – >configurationpipe理器菜单下select了所有的项目,并重新启动VS技巧不适合你,或者你必须find文件的引用(可能是DLL或CS)您的项目并手动删除这些参考。 这些文件/参考文件应该用黄色图标显示。 这个错误明确地指导着你应该研究哪个项目的解决scheme。
这个错误的原因是因为你已经在Windows资源pipe理器中手动删除了文件,并且VS没有更新引用并试图find不再存在的文件!
就我而言,我发现我的一个解决scheme是引用了计算机上没有的东西(VBIDE)。 一旦我删除了有问题的参考,其他项目正确构build。 希望能帮助别人。
而在另一种情况下,我将一些代码从一个项目移到另一个项目,那段代码引用了Json.net。 我手动添加了对Json.net的引用,但是这导致了这个问题。 我通过通过NuGet安装Json.net解决了这个问题,并使问题消失。 希望能帮助别人。
同样的事情发生。 我有几个解决scheme引用相同的库项目(.net 3.5)。 我注意到当一个是在debugging/正常configuration,另一个使用其他编译器指令(sqlite /本地模式),这会发生。 简单地使用相同的指令build立两个项目,你应该没问题。
如果您已将新项目添加到解决scheme中,请检查它是否位于构build列表中(请参阅Configuration Manager)
当我想包含一个由Matlab生成的dll文件时,我遇到了保存问题。 最后,我通过复制一个.ctf文件来解决这个问题。这个文件意味着我认为的证书,以及.dll文件和.dll文件正常运行所需的一个.netmodule。 而这实际上工作! 所以,我的build议是检查.dll是否需要其他文件相处。
Windows 7 Ultimate 32 Visual Studio 2008 SQL Server v2005
我收到了同样的错误。 我决定删除并重新添加项目引用。 我无法将它们添加回来,因为每个引用的项目中的数据库引用都是空白的。
一旦我将数据库引用重置为正确的设置,我就可以构build没有进一步的问题。 另外,这是我第一次尝试在VSS中分支源代码之后重build这个项目。
祝你好运
我有这个错误,这是由我的项目依赖项之一,在项目中更改程序集名称引起的,但引用没有更新。 所以更新引用或重命名该程序集将修复它。
EE – 在我的情况下,问题是在具有entity framework的项目,打开图拖动任何表2厘米:)并保存,VS将更新他所有的链接到数据库…build立这个项目,并build立解决scheme,Buildssss。
唯一固定我的(因为我没有在pipe理员帐户上运行VS2010)是手动将环境variablesVS120COMNTOOLS从系统variables移动到用户variables。
从.csproj文件中删除源控件和文件系统中不存在的所有源文件的条目都适用于我。
详细的方法:
那么,我的下面的答案不只是所有解决scheme的总结,但它提供了更多的。
第(1)节:
一般解决scheme:
我有4种这样的错误('元数据文件无法find')以及1个错误说'源文件无法打开('未指定的错误')'。
我试图摆脱“无法find元数据文件”的错误。 为此,我读了很多post,博客等,发现这些解决scheme可能是有效的(在这里总结):
-
重新启动VS并尝试再次build立。
-
转到“解决scheme资源pipe理器” 。 右键点击解决scheme。 去属性 。 转到“configurationpipe理器” 。 检查“Build”下的checkbox是否被选中。 如果其中任何一个或全部未被检查,则检查它们并尝试再次build立。
-
如果上述解决scheme不起作用,请按照上述步骤2中提到的顺序进行操作,即使所有checkbox都选中,取消选中它们,再次检查并再次尝试生成。
-
构build顺序和项目依赖关系:
转到“解决scheme资源pipe理器” 。 右键点击解决scheme。 转到“Project Dependencies …” 。 您将看到2个选项卡: “依赖关系”和“构build顺序” 。 此构build顺序是解决scheme构build的顺序。 检查项目依赖关系和构build顺序,以validation是否有一个项目(如'project1')依赖于其他项目(比如'project2')正在尝试构build之前(project2)。 这可能是错误的原因。
-
检查缺less.dll的path:
检查缺less的.dll的path。 如果path包含空间或任何其他无效的path字符,请将其删除并再次尝试编译。
如果这是原因,那么调整构build顺序。
第(2)节:
我的具体情况是:
我尝试了各种排列和组合的所有步骤,重新启动VS几次。 但是,这并没有帮助我。
所以,我决定摆脱我遇到的其他错误(“源文件无法打开('未指定的错误')')。
我遇到了一个博客: http : //www.anujvarma.com/tfs-errorsource-file-could-not-be-opened-unspecified-error/#comment-1539
我试着在那个博客中提到的步骤,我摆脱了错误'源文件无法打开('未指定的错误')' ,令人惊讶的是我摆脱了其他错误('元数据文件无法find')以及。
第(3)节:
故事的道德启示:
尝试所有解决scheme,如上面(1)所述(和其他解决scheme),以摆脱错误。 如果没有任何结果,按照上面第(2)节中提到的博客, 从.csproj文件中删除源控件和文件系统中不存在的所有源文件的条目 。