Oli*_*ver 647 .net c# wpf visual-studio-2008 c#-3.0
我正在研究WPF,C#3.0项目,我收到此错误:
Error 1 Metadata file
'WORK=- \Tools\VersionManagementSystem\BusinessLogicLayer\bin\Debug
\BusinessLogicLayer.dll' could not be found C:\-=WORK=- \Tools
\VersionManagementSystem\VersionManagementSystem\CSC VersionManagementSystem
Run Code Online (Sandbox Code Playgroud)
这是我引用我的usercontrols的方式:
xmlns:vms="clr-namespace:VersionManagementSystem"
<vms:SignOffProjectListing Margin="5"/>
Run Code Online (Sandbox Code Playgroud)
它发生在每次失败的构建之后.我可以获得编译解决方案的唯一方法是注释掉我的所有用户控件并重新构建项目,然后我取消注释用户控件,一切都很好.
我检查了构建顺序和依赖项配置.
正如你所看到的,它似乎已经截断了DLL文件的绝对路径......我已经读过有一个长度错误.这可能是个问题吗?
它非常烦人,不得不评论,构建和取消注释,构建变得非常烦人.
Mat*_*Bro 810
我刚遇到同样的问题.Visual Studio不构建正在引用的项目.
cor*_*rax 214
这仍然可以在较新版本的Visual Studio中发生(我只是在Visual Studio 2013上发生过):
另一件事是关闭Visual Studio并删除.suo
文件旁边的.sln
文件.(它将在您下次Save all
(或退出Visual Studio)时重新生成).
我在将新项目添加到另一台机器上的解决方案然后拉入修订版时遇到了这个问题,但是.suo
在其他情况下文件也可能被破坏并导致非常奇怪的Visual Studio行为,因此删除它是其中一个我经常尝试的事情.
请注意,删除该.suo
文件将重置解决方案的启动项目.
关于.suo
文件的更多信息在这里.
小智 164
建议的答案对我不起作用.该错误是另一个问题的诱饵.
我发现我的目标是稍微不同的.NET版本,这被编译器标记为警告,但它导致构建失败.这应该被标记为错误而不是警告.
Vik*_*ram 96
好吧,我的答案不仅仅是所有解决方案的总结,而且还提供了更多.
第(1)节:
一般解决方案:
我有四个这种错误('无法找到元数据文件')以及一个错误,说'源文件无法打开('未指定错误')'.
我试图摆脱'无法找到元数据文件'的错误.为此,我阅读了许多帖子,博客等,发现这些解决方案可能有效(在此总结):
重新启动Visual Studio并再次尝试构建.
转到"解决方案资源管理器".右键单击Solution.转到" 属性".转到"配置管理器".检查是否选中了"Build"下的复选框.如果未选中任何一个或全部,请检查它们并再次尝试构建.
如果上述解决方案不起作用,则按照上面步骤2中提到的顺序进行操作,即使选中了所有复选框,也要取消选中它们,再次检查并再次尝试构建.
构建顺序和项目依赖性:
转到"解决方案资源管理器".右键单击Solution.转到"项目依赖关系......".您将看到两个选项卡:"依赖关系"和"构建顺序".此构建顺序是构建解决方案的顺序.检查项目依赖项和构建顺序,以验证依赖于其他项目(比如'project2')的某个项目(比如'project1')是否正在尝试在该项目之前构建(project2).这可能是导致错误的原因.
检查丢失的.dll的路径:
检查丢失的.dll的路径.如果路径包含空格或任何其他无效路径字符,请将其删除并再次尝试构建.
如果这是原因,则调整构建顺序.
第(2)节:
我的具体案例:
我尝试了几个上面的所有步骤,并重新安装了Visual Studio几次.但是,它没有帮助我.
所以,我决定摆脱我遇到的其他错误('源文件无法打开('未指定错误')').
我发现了一篇博文:无法打开TFS错误源文件('未指定错误')
我试图在博客中提到的步骤,我摆脱了错误的"源文件无法打开("未指定的错误")"和令人惊讶的我摆脱其他错误("元数据文件找不到")作为好.
第(3)节:
故事的道德启示:
尝试上面第(1)节(以及任何其他解决方案)中提到的所有解决方案以消除错误.如果没有任何效果,根据上面第(2)节中提到的博客,从.csproj文件中删除源控件和文件系统中不再存在的所有源文件的条目.
Eri*_*der 37
在我的情况下,它是由.NET Framework版本不匹配引起的.
一个项目是3.5,另一个项目是4.6.1.
Ale*_*ens 18
好吧,之前的答案中没有任何内容对我有用,所以它让我思考为什么我点击并希望何时作为开发人员我们应该真正尝试了解这里发生了什么.
我觉得这个不正确的元数据文件引用必须保存在某处.
快速搜索.csproj文件显示了内疚的行.我有一个名为<itemGroup>的部分似乎挂在旧的不正确的文件路径上.
<ItemGroup>
<ProjectReference Include="..\..\..\MySiteOld\MySite.Entities\MySite.Entities.csproj">
<Project>{5b0a347e-cd9a-4746-a3b6-99d6d010a6c2}</Project>
<Name>Beeyp.Entities</Name>
</ProjectReference>
...
Run Code Online (Sandbox Code Playgroud)
真的很简单:
请确保在摆弄之前备份旧的.csproj.
小智 14
我也遇到了这个问题.首先,您必须通过右键单击Build来手动构建DLL项目.然后它会工作.
小智 13
我得到了相同的错误"无法找到元数据文件'.dll',我尝试了上面描述的几件事,但错误的原因是我引用了第三方DLL文件,该文件的目标是.NET版本更高我的项目目标是.NET版本.所以解决方案是改变我的项目的目标框架.
小智 11
在我的情况下,我以错误的方式安装了我的目录.
如果您的解决方案路径类似于"我的项目%2c非常受欢迎的%2c单元测试%2c软件和硬件.zip",它无法解析元数据文件,也许我们应该防止一些无效的单词,如%2c.
将路径重命名为普通名称解决了我的问题.
对我来说,它试图在用于包含Project的路径中找到DLL,但我们已将其移动到新目录.解决方案具有项目的正确路径,但Visual Studio以某种方式继续查看旧位置.
解决方案:重命名每个问题项目 - 只需添加一个字符或其他 - 然后将其重命名为其原始名称.
这必须在Visual Studio中重置一些某种全局缓存,因为这样可以解决这个问题以及类似的问题,而像Clean这样的东西则不会.
我也在解决这个问题,但是在尝试了之前的答案之后,对我来说唯一有用的就是在我的解决方案中逐个打开每个项目并单独构建它们.
然后我关闭了Visual Studio 2013,重新打开了我的解决方案并且编译得很好.
这很奇怪,因为如果我在解决方案资源管理器中单击每个项目并尝试以这种方式构建它们,那么它们都会失败.我必须在自己的解决方案中单独打开它们.
我的问题实例是由一个共同的项目引起的,该项目中有一个重复的类名(在不同的文件名下).奇怪的是,Visual Studio无法检测到这一点,而只是炸毁了构建过程.
我在Visual Studio 2012中遇到了这个问题,该解决方案包含许多项目.按照与项目构建顺序相同的顺序手动重建解决方案中的每个项目(在解决方案资源管理器中右键单击并重建)为我修复了它.
最终我遇到了一个给我编译错误的程序.我修复了错误,之后解决方案将正确构建.
看起来这种错误与Visual Studio无法提供有关错误的正确信息有关.开发人员甚至不了解构建失败的原因.它可能是语法错误或其他.通常,要解决此类问题,您应该找到问题的根源(例如,查看构建日志).
在我的情况下,问题实际上是Error List
窗口没有显示任何错误.但确实存在语法错误; 我在Output
窗口中发现了这些错误,在修复它们之后,问题就解决了.
这里解释的大多数方法并没有解决我的问题。
最后,我通过应用以下步骤解决了该问题:
1.关闭 Visual Studio。
2、删除各个项目的bin文件夹中的所有内容。
3.打开解决方案并重建。
就我而言,问题是由简单的构建错误引起的,
错误CS0067:从不使用事件'XYZ'
由于任何原因,没有出现在错误窗口中.
因此,Visual Studio构建系统似乎错过了错误,并试图构建依赖项目,而这些项目又因烦人的元数据消息而失败.
建议是 - 听起来很愚蠢 - :
首先看看你的输出窗口!
在这个想法袭击我之前我花了半个小时...
我今天在 VS2022 上通过 Blazor 项目的解决方案解决了这个问题。
根本问题是我在 .razor 文件中声明的 C# 代码中引入了例程 C# 编译错误。VS2022 删除了“构建错误列表”选项卡中错误的显示。我通过扫描输出控制台日志选项卡中的构建输出发现了 C# 错误,其中我的 C# 错误按预期进行了描述。
ps 如果您想知道,我有一个引用我的 Blazor Web 项目的单元测试项目。从单元测试项目到 Blazor 应用程序的项目 DLL 引用抱怨缺少 Blazor DLL。
根据错误消息,我不相信文件路径被截断。它看起来只是不正确。如果我正确地阅读了该消息,它似乎正在寻找 DLL 文件......
WORK=-\Tools\VersionManagementSystem\BusinessLogicLayer\bin\Debug\BusinessLogicLayer.dll
这不是有效路径。您是否有可能在构建过程中将宏定义设置为无效值?
我也有同样的错误.它隐藏在下面的路径中.我提到的DLL文件的路径就像"D:\ Assemblies Folder\Assembly1.dll".
但是程序集引用的原始路径是"D:\ Assemblies%20Folder\Assembly1.dll".
由于此路径名称变化,无法从其原始路径检索程序集,因此会抛出"未找到元数据"错误.
解决方案是在Stack Overflow问题中如何用C#中的%20替换所有空格?.
我遇到了同样的问题.在我的情况下,我引用了一个类库项目,其.Net版本高于我的项目,VS无法构建项目并引发了您发布的相同错误.
我只是设置我的类库项目的.Net版本(破坏了构建的那个)与引用项目的.Net版本相同并解决了问题.
归档时间: |
|
查看次数: |
701610 次 |
最近记录: |