我有一个引用多个子项目的项目
MainProject -> Library1
-> Library2 -> Library3
NetProject -> Library1
-> Library2 -> Library3
如果我在库3中输入一个拼写错误,那么对Library2或Library3的每一个引用都显示为“blah”无法找到(你是否缺少using指令或汇编引用?)
一旦我追踪到真正的错误,所有遗失的参考错误都会消失。
有时在Library3中输入一个拼写错误会使Library3从Library2中的引用中消失。当我右键单击“添加引用”时,引用就在那里并勾选但无法看到。删除和添加引用可以解决问题。
所有5个项目参考4.6.1
Library1,2和3使用新的CSPROJ格式。
MainProject是一个WPF项目,使用旧的CSPROJ格式。
WebProject是一个netcore项目(目标是461)并使用新的CSPROJ格式。
以下是library1,2,3
的CSPROJ示例<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
<PropertyGroup>
<Deterministic>False</Deterministic>
<TargetFramework>net461</TargetFramework>
我尝试过多个版本的Visual Studio Enterprise(15.5预览版,15.4等)
为什么我会收到这些链效应构建错误?
为什么引用会消失并需要重新加载?
编辑:如果我将Library1,2,3更改为旧的CSPROJ格式,问题就会消失。它似乎只是混合旧的和新的CSPROJ格式的结果。新的是NETCORE风格的csproj,旧的是旧文件,每个文件必须单独引用等。
答案 0 :(得分:0)
为什么我会收到这些链效应构建错误?
由于Library3位于依赖树的根目录,即其他项目依赖于此成功构建,因此library3中的任何构建错误都将导致dll无法生成,因此缺少dll编译时错误。
对于问题的第二部分,您可以在此处查看:Reference disappear upon debug/build (C#, VB.NET, VS2010)
答案 1 :(得分:0)
如果项目A,B,C和D依赖于Z并且构建Z失败,那么所有其他项目也将失败。这可能是由于一个错误,但是,现在你将会遇到更多错误,而不仅仅是一个错误。
如果需要,可以使用StopOnFirstBuildError扩展名,以便在项目Z失败时,不会尝试其他任何项目(从属项)。
答案 2 :(得分:0)
为什么我会收到这些链效应构建错误?
对于这个问题,那是因为依赖Library3
的根中的拼写错误,就像C.Dhruv和CodingYoshi所说的那样。由于拼写错误,项目Library3
无法成功构建。 .dll
文件ClassLibrary3.dll
将无法成功生成,因此引用它的其他项目将引发错误:
> reference could not be found (are you missing a using directive or an
> assembly reference?)
此外,您有多个引用,因此您可能会遇到~4000个构建错误。我想你已经知道了这个问题的答案。现在你的问题应该是:
我有~4000个构建错误,我无法找到其中的实际真实错误 噪声。这在我的其他视觉工作室项目中不是正常行为。
虽然错误列表窗口中有~4000个构建错误,但是大多数错误应该是构建错误而不是Intellisense错误(检测拼写错误),所以我们可以在错误列表上使用过滤器Intellisense Only
过滤智能感知错误:
希望这有帮助。