我在一个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

这是我如何引用我的usercontrols:

xmlns:vms="clr-namespace:VersionManagementSystem"
<vms:SignOffProjectListing Margin="5"/>

每次构建失败后都会发生这种情况。我能得到解决方案编译的唯一方法是注释掉所有用户控件并重新构建项目,然后取消注释用户控件,一切正常。

我已经检查了构建顺序和依赖项配置。

正如你所看到的,它似乎截断了DLL文件的绝对路径…我读到过关于长度的问题。这是一个可能的问题吗?

注释、构建和取消注释是非常烦人的,构建变得非常烦人。


当前回答

我今天在VS2022的一个Blazor项目的解决方案中击中并解决了这个问题。

潜在的问题是我引入了一个常规的c#编译错误 在。razor文件中声明的c#代码。VS2022正在从“生成错误列表”选项卡中删除错误显示。我通过在output控制台日志选项卡中扫描构建输出发现了c#错误,我的c#错误被描述为预期的。

附注:如果你想知道,我有一个单元测试项目引用我的Blazor web项目。从单元测试项目到Blazor应用程序的项目DLL引用正在抱怨缺少Blazor DLL。

其他回答

VS2022:在这里的大量列表中没有发现原因。

拥有一个完全由静态方法组成的静态类。从类声明中删除static不会引发编译错误或警告,但会导致OP构建错误。

将类声明恢复为静态并修复了该问题。

我也遇到过同样的问题。在我的例子中,我引用了一个类库项目,它的. net版本比我的项目更高,VS未能构建该项目,并引发了与你发布的相同的错误。

我只是简单地将我的类库项目的。net版本(破坏构建的那个)设置为与引用项目的。net版本相同,问题就解决了。

使用Blazor WebAssembly ASP。NET Core托管应用程序,当我删除天气预报模型时出现了这个问题,这导致了一个构建错误,不可见的错误。

如果是这种情况,只需删除FetchData。剃刀锉,你就可以出发了!

我的问题出现在我写c# 7代码时,但项目使用的是旧版本的。net框架

在我的案例中,依赖项目(取决于错误消息中的项目)在项目的“属性→应用程序→程序集信息……”下的“程序集版本”字段中缺少值。我只是在“文件版本”中添加了相同的数字,点击“确定”,编译器错误就消失了!

事实证明,重新添加AssemblyVersion然后再次构建项目会导致另一个错误,该错误声称它已经出现在项目中。这是!在解决方案资源管理器中项目的属性节点下,有一个“SolutionVersionInfo.cs”文件,该文件还包含一个装配版本属性-从项目中删除该文件解决了此错误。