我在一个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文件的绝对路径…我读到过关于长度的问题。这是一个可能的问题吗?

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


当前回答

以我为例,在注意到我引用了. net Framework 4.7项目作为. net Framework 4.6.1项目的依赖项后,我解决了这个问题。在将项目4.7迁移到4.6.1之后,我的应用程序正常编译

其他回答

我在更新dll /nuget后得到了这个问题。

我可以手动纠正.csproj文件来解决这个问题。大多数情况下,文件中的版本没有更新。 例如:

<Analyzer> Include="..\packages\Microsoft.CodeAnalysis.**VersionCheckAnalyzer.2.9.1**\analyzers\dotnet\Microsoft.CodeAnalysis.VersionCheckAnalyzer.dll"/>

<Analyzer> Include="..\packages\Microsoft.CodeAnalysis.**VersionCheckAnalyzer.2.9.7**\analyzers\dotnet\Microsoft.CodeAnalysis.VersionCheckAnalyzer.dll"/>

在我的网页里。配置文件更改此

<?xml version="1.0" encoding="utf-8"?>

这个

<?xml version="1.0"?>

修正了我的问题

在我的案例中,解决方案中的一些项目针对任何CPU,其中一些针对x86。在整个解决方案统一了平台目标后,编译错误消失了。

在我的例子中,解决方案的父文件夹的名称中有%20。我通过删除%20重命名了父文件夹,问题得到了解决。

我在4.6.1中有一个类引用了4.6.2中的接口…将类升级到462修复了这个问题。