我可以帮助您进行翻译。以下是您需要翻译的内容:
我了解以下内容:
所以问题是:
我有一个包含239个项目的解决方案。我目前遇到了以下问题:
当我对该解决方案执行“重新生成全部(rebuild all)”操作时,在进行完整的清理(删除输出目录)后:
17>------ Rebuild All started: Project: AAA, Configuration: Debug x86 ------
18>------ Rebuild All started: Project: BBB, Configuration: Debug x86 ------
18>CSC : error CS0006: Metadata file 'E:\Dev\Trunk\Debug\x86\AAA.dll' could not be found
17> XmsCommon -> E:\Dev\Trunk\Debug\x86\AAA.dll
我了解以下内容:
- Visual Studio正在多线程编译(在我的情况下,每次同时编译4个程序集)
- 我没有明确指定“项目依赖项”(右键单击解决方案-〉项目依赖项)
- 在这个例子中,AAA是BBB的一个引用项目,对我来说,它是一种隐含的依赖关系,如何能够在确保正确构建AAA之前正确构建BBB?
- 对于包含239个项目的解决方案,我们应该如何管理此问题?要确保不将任何引用指向错误的项目已经足够困难,如果我们总是必须确保构建顺序,那么就变得复杂了。
所以问题是:
- 有没有办法处理这个问题,而不必在解决方案中指示每个项目依赖项?
- 如果没有,我们应该怎么做?
- AAA或BBB中没有编译错误,除了找不到引用项
- 我们引用项目而不是dll(在我遇到错误的特定情况下进行了检查)
BBB.csproj
中,我有以下引用:<ProjectReference Include="..\..\..\..\SomeOtherFolder\AAA\AAA.csproj">
<Project>{6241076B-05B3-4D5D-AFA9-46D41E1CEC3A}</Project>
<Name>AAA</Name>
<Private>False</Private>
</ProjectReference>
编辑2
我不知道这是否直接相关,但在检查项目依赖关系时,我发现BBB
依赖于CCC
(但没有指定AAA
)。我想知道是否有一个依赖关系指定,它基本上会忽略来自引用的所有信息?如果我尝试删除CCC
依赖项,我会收到以下消息:
此依赖项是由项目系统添加的,无法移除
编辑3
我做了一个有趣的发现:实际上,我在编辑2中遇到的错误是因为在创建两个项目之间的引用时添加了此依赖项。
由于某种未知原因,似乎此依赖项未为一个引用创建。如果我删除项目引用,然后再次将引用添加到同一项目中,则现在具有此依赖关系(我无法删除)。 我找不到存储此“依赖项”的位置。 如何“修复”此解决方案?
<ProjectReference>
还是<Reference>
? - Marc Gravell