gpt4 book ai didi

visual-studio-2015 - VS 无法识别项目依赖项

转载 作者:行者123 更新时间:2023-12-04 04:37:12 27 4
gpt4 key购买 nike

我正在研究的解决方案包含 400 多个项目。该问题不可重现,但非常烦人。 (Windows 8.1、Visual Studio 2015 更新 2 和 3)

基本上,计算构建顺序时不考虑某些项目依赖项。该过程因错误而停止:找不到引用的 dll。它时不时发生,通常是“丢失”了不同的项目。很多时候没有什么问题,它只是有效。找不到任何模式。

如果我手动构建“丢失”的项目,然后构建解决方案,则一切正常,或者其他项目“丢失”。

似乎 VS 已经失去了对项目依赖项的跟踪,尽管每个引用都在那里,如 VS 和 csproj 文件中所见。

请参阅屏幕截图:解决方案构建已停止,因为缺少 dll。生成 dll 的项目被正确引用(请参阅解决方案资源管理器),但在“项目依赖项”对话框中不可见。我的猜测是,由于缺少依赖项,构建顺序会变得困惑,并且 - 基于并行编译导致的一些随机性 - 在某些情况下,依赖项目构建得太晚了。

dependency not recognized properly

注意:是的,我可以选中那个复选框,但正如我所说,这个问题是随机发生的,并且是随机项目。是的,我可以通过事先手动构建受影响的项目来解决这个问题。我正在寻找解决根本问题的方法。

欢迎任何提示和评论。

最佳答案

有时我注意到使用导入助手(例如 ReSharper)会导致依赖项目链接到另一个依赖项目的输出而不是依赖源。

这就是说,如果您要创建一个项目——我们称之为“ProjectA”——并将其链接到库“MyLib”,然后创建“ProjectB”并允许 ReSharper 自动解析依赖项以链接到“MyLib”,您可能会发现ReSharper 实际上会链接到 .\ProjectA\Bin\MyLib.dll 文件而不是 .\Libraries\MyLib\MyLib.dll 文件。

重建解决方案时,可能会发生以下情况:
* ProjectB 碰巧首先/更快地构建(因为,也许,ProjectA 有很多更改,而 ProjectB 只有很少的代码更改)。
* ProjectB 然后尝试链接到位于 ProjectA 的\bin 文件夹中的 MyLib.dll,但找不到它。
* ProjectA 完成构建并将其依赖项 - MyLib.dll 复制到其\bin 文件夹。
* ProjectB 不是由您手动重建,现在定位\ProjectA\bin\MyLib.dll 没有问题。

因此,总而言之,请检查项目中依赖项的确切源位置。我敢猜测,在 400 多个项目中,有些项目已经交叉连接。
祝你好运!

关于visual-studio-2015 - VS 无法识别项目依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40631592/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com