我知道还有另一个问题,有同样的问题,但是我陷入了所有这些答案,没有帮助我。:((这是问题。(
我刚刚创建了一个新的ASP.NET MVC项目,并加入了解决方案中的一些.dll。现在,当我尝试构建项目时,我会在5个库中的3个中获取下面显示的错误消息。
Error CS0006 Metadata file 'C:Users...sourceDatabasebinDebugDataAccessLayer.dll' could not be found Logic C:Users...sourceLogicCSC 1 Active
Error CS0006 Metadata file 'C:Users...sourceLogicbinDebugLogic.dll' could not be found PTS2-MVC C:Users...sourcePTS2-MVCCSC 1 Active
Error CS0006 Metadata file 'C:Users...sourcePTS2-MVCbinPTS2-MVC.dll' could not be found PTS2-MVC.Tests C:Users...sourcePTS2-MVC.TestsCSC 1 Active
当我转到该.dll的bin debug文件夹时,我发现它是空的,而另一个.dll我没有收到错误消息,不是空的。但是我毫无疑问如何解决这个问题或我为实现这一目标而做的事情。
最常见的答案是转到>解决方案的 properties ,然后转到 configuration and 和 unceck -> 应用 -> 检查和再次应用,但这无效
问题是我在项目中还有其他一些正常错误消息,显然是在修复这些消息之后,当我再次清洁和构建项目后,所有.dlls都成功了。
确保项目中没有任何其他错误消息,如果您这样做,请先修复这些消息!
修复此错误的步骤:metadata file .dll找不到。
-
清洁所有项目。
-
卸载所有项目。
-
重新加载所有项目。
-
重建解决方案。
然后解决问题。
在我的情况下,有一个错误,但没有通过VS来正确解析并显示在"错误"中列表"窗口。为了找到它,您可以从构建窗口中查看OL"输出",然后通过从上到下开始的消息解析并解决实际错误。M $,请修复!这是世界集体开发商的巨大浪费。
仔细检查项目文件夹的名称。就我而言,我的项目文件夹在其中命名了。当我使用Git Bash从Team Foundation Server克隆该项目时,文件夹名称中的空间被转换为:"%20"。将这些更改为空间为我解决了问题。
我有一个包含多个项目的解决方案的问题。
它来自复制 .csproj 并将副本添加到解决方案中。a .csproj 文件包含一个<ProjectGuid>
元素。我将复制项目的GUID设置为新项目。
更新:您使用哪种GUID无关紧要,它只需要与另一个项目的GUID不同。您可以从Visual Studio:Tools -> Create GUID
中创建一个新的GUID,并在卷曲括号之间复制零件,即{...}
。将其用作<ProjectGuid>
元素的新值。
我还执行了以下步骤(不是必不可分的,但它们不会受伤(:
- 关闭解决方案
- 删除bin文件夹
- 删除所有OBJ文件夹
- 打开解决方案并构建
我按照此步骤解决此问题:
- 干净的解决方案
- Close Visual Studio
- 从项目目录中删除/bin
- 重新启动Visual Studio
- 重建解决方案
您应该检查的另一件事是任何引用项目的目标框架,以确保调用项目使用相同或更高版本的框架的框架。
我遇到了这个问题,我尝试了所有先前建议的答案,然后在一次预先检查的框架上检查了框架。当调用项目仅为4.5.2。
对我来说,清洁和建筑物不起作用时,被引用的项目之一是目标4.6.1。卸载项目无效。重新启动Visual Studio甚至PC都无法正常工作。这就是工作的工作:
转到丢弃错误的每个项目,并在参考文献中删除对有问题的项目的引用,然后再次添加。解决这个问题。
这个问题似乎与将项目移动(例如在文件夹中移动(,然后是一个引用它的不同项目,没有它的路径并且找不到它。
我也有同样的问题,即使在"重建解决方案"之后"错误列表"视图上没有其他错误。但是,在"输出"视图上,我看到了问题背后的错误:
主要参考" c:... myproj.dll"无法解决,因为它是根据" .netFramework,版本= v4.6.1"框架构建的。这是一个比当前针对的框架更高的版本。
我纠正了此问题后,问题就解决了。
我有相同的问题,问题是解决方案路径在名称和名称和vs由于某种原因无法解决软件包...再次下载我的存储库,只是将解决方案重命名为"名称中的空格"。
例如:
/Repo/Project Name/src
应该是
/Repo/ProjectName/src
对我有用的是:
软件包管理器控制台(Visual Studio 2019 Comunity(:
Install-Package NuGet.CommandLine
nuget locals all -clear
重建解决方案。
我已经基于依赖项单独一个单独的解决方案中的25个项目中构建了10个项目。然后构建解决方案。它为我修复了
在bash中运行此命令以删除所有为我工作的垃圾箱
$ find . -iname "bin" -o -iname "obj" | xargs rm -rf
不能保证它对其他任何人都有效
还要注意它将删除所有bin文件 - 因此,您将必须重建所有项目。显然,最好在使用它之前将CD降为相关目录。
清洁我的解决方案导致Visual Studio 2017的问题。卸载/重新加载项目或进行更多清洁没有不同。唯一有效的是关闭和重新启动Visual Studio。
检查所有项目已加载。在我的情况下,该项目之一被卸载并重新加载项目清除了错误。
在我的情况下,我必须打开.csproj文件并手动添加参考,例如(microsoft.extensions.inderity.stores.stores.stores.dll(缺少(:
<Reference Include="Microsoft.Extensions.Identity.Stores">
<HintPath>........Program FilesdotnetsdkNuGetFallbackFoldermicrosoft.extensions.identity.stores2.0.1libnetstandard2.0Microsoft.Extensions.Identity.Stores.dll</HintPath>
</Reference>
关闭Visual Studio,查找解决方案的.suo文件,删除它,重新打开Visual Studio。
我也有同样的问题,我尝试了解决方案无法找到元数据文件'.dll'
但是这些都没有用。
因此,经过反复试验后,我通过卸载和重新加载项目将其重置并修复了配置文件并修复了问题。
在我的情况下。我面临同样的错误。我的项目解决方案之一是从不同的Nuget位置引用一个组件。我只是将其更改为更正位置以解决此错误并重建。哇,项目将成功构建,所有其他错误都消失了。
我也有相同的错误。就我而言,我已经建立了一个库(称其为通讯库(,该库将其作为我的解决方案中的项目(将其包括在其他库中(。后来,当我构建一个项目并添加我的 commslibrary 时,每当我构建时,就找不到元数据文件的错误。因此,我添加了我的通讯库引用了当前项目的库,然后能够构建。
面临许多麻烦,这是我发现的解决方案。
- 打开您的项目文件夹。
- 查找 your_project_name.csproj [Visual C#Project File(.csproj(]
-
在任何文本编辑器中打开该文件,并找到您缺少的文件项目集。
<ItemGroup> <None Include="..." /> </ItemGroup>
-
删除该项目组并再次打开您的项目并构建
- 如果该引用对您很重要,则再次添加。
我也有同样的问题。我的问题是团队中的其他人搬了一个课堂文件夹,该项目正在寻找它。
对我来说,有44个错误;43以.dll结尾(搜索依赖关系(,错误列表中的第一个以.cs结尾(搜索实际类(。我尝试了清洁,清洁,卸载,重新加载,构建,但无效。我最终在项目中找到了课程,然后将其删除,因为它表现为不可用,然后是清洁构建。
那对我有用!希望这可以帮助。
i在同一项目中有2个文件(和2个类(。
在我的情况下,我直接从Team Explorer Git菜单中删除了一个文件,该文件引起了此问题。当我检查解决方案资源管理器时,它仍将已删除的文件显示为未参考文件。当我从解决方案资源管理器中删除该文件时,我能够成功地构建项目。
对我来说有效的是:
卸载,然后重新安装具有错误的引用的Nuget软件包。
在我的情况下,我运行了测试并获得了错误CS0006。事实证明,我在发布模式下运行测试。切换到调试模式已解决此错误。
当您重命名解决方案并且.NET框架找不到旧解决方案时,此问题就会发生。
要解决此问题,您需要使用新名称查找并替换解决方案的旧名称和所有依赖项。如果您需要通过文件资源管理器浏览物理文件。
通常受影响的文件是AssemblyInfo.cs
,.sln
Properties > Application > Assembly
名称和默认名称空间。确保用新名称更新它们。
打开文件资源管理器,如果仍然存在旧名称的文件夹,则需要删除它。然后清洁并构建解决方案,直到错误消失。(如果需要的话,请逐一构建项目,尤其是受影响的项目。(
在我的情况下,我正在引用一个项目,我在其中评论了所有.cs
文件。
例如Project App参考项目。在项目上,我只有1个.cs
文件。我不再使用它,所以我评论了整个文件。在ProjectApp中,我没有从ProjectUnity调用任何代码,但是我在一个ProjectApp .cs
文件中有using ProjectUtility;
。我从编译器遇到的唯一错误是 CS0006 错误。
我在项目上删除了.cs
文件,并且错误消失了。因此,我不确定项目中没有代码会导致编译器创建无效的组件或根本不会生成DLL。对我的解决方案是仅删除对项目的引用,而不是评论所有代码。
如果您想知道为什么我会评论引用项目中的所有代码而不是删除参考,我之所以这样做,是因为我正在测试某些内容,而不想修改ProjectApp.csproj
文件。
在处理依赖项目的几个问题之后,如被接受的答案所述,我仍然遇到此错误。我可以看到该文件确实存在于其所在的位置,但是由于某种原因,Visual Studio无法识别它。重建解决方案将清除所有依赖项目,然后不会重建它们,但是单独构建将产生.dll的项目。我在Visual Studio的开发人员PowerShell终端中使用了msbuild <project-name>.csproj
,这意味着要获得一些更详细的调试信息 - 但它是为我构建的!尝试使用msbuild
来抗持续的构建错误;您可以使用--verbosity:
选项来获取更多输出,如文档中所述。