是的,我可以为我的问题提供一些答案,即使它不是完整的答案。
为了弄清楚清单需要什么,我最终将构建输出级别设置为诊断,然后搜索日志。这揭示了链中最深和最高的依赖关系,但没有揭示它们之间的引用。
...
1> bin\x64\Debug\Microsoft.VC90.CRT.manifest
1> CopyLocal=true
1> FusionName=
1> HintPath=<path to the reference in my project that pulls in this file (indirectly)>
1> OriginalItemSpec=<path to the output folder>\Kitware.VTK.dll < The dll at the bottom of the chain that needs the manifest
1> ResolvedFrom=<path to the folder containing the referenced binaries>
1> SpecificVersion=False
1> Version=7.1.0.1009
从这里我可以看到 Kitware.VTK.dll 导致了 CopyLocalFiles 错误以及哪个直接引用将其拉入。但是,我看不到导致此错误的引用链。我将顶级引用(.dll)加载到 dotPeek 中,并使用程序集依赖图来检查这两个 dll 之间的引用链 -注意这有效但不是最佳的,并且 GUI 确实在依赖关系图上挣扎。
我现在需要弄清楚如何打破这个链条,或者我是否可以将清单嵌入到我们控制的程序集中。