Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2015 VS不识别项目依赖关系_Visual Studio 2015 - Fatal编程技术网

Visual studio 2015 VS不识别项目依赖关系

Visual studio 2015 VS不识别项目依赖关系,visual-studio-2015,Visual Studio 2015,我正在处理的解决方案包含400多个项目。这个问题是不可复制的,但非常烦人。(Windows 8.1、Visual Studio 2015更新2和3) 基本上,在计算构建顺序时,一些项目依赖关系没有被考虑在内。进程因错误而停止:找不到引用的dll。它时不时地发生,通常伴随着不同的项目“缺失”。很多时候,没有什么是错误的,它只是工作。找不到任何图案 如果我手工构建“缺失”项目,然后构建解决方案,那么一切都很好,或者其他项目“缺失” 似乎VS已经失去了对项目依赖关系的跟踪,尽管每个引用都在那里,正如V

我正在处理的解决方案包含400多个项目。这个问题是不可复制的,但非常烦人。(Windows 8.1、Visual Studio 2015更新2和3)

基本上,在计算构建顺序时,一些项目依赖关系没有被考虑在内。进程因错误而停止:找不到引用的dll。它时不时地发生,通常伴随着不同的项目“缺失”。很多时候,没有什么是错误的,它只是工作。找不到任何图案

如果我手工构建“缺失”项目,然后构建解决方案,那么一切都很好,或者其他项目“缺失”

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

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

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


欢迎任何提示和评论。

有时我注意到使用导入帮助程序(如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多个项目中,有些项目已经交叉连接。

祝你好运

在我的例子中,我必须从目标项目的.csproj中删除所有错误。
我删除了名称中包含错误的元素,保存了更改,重新加载了项目并重新构建了它。此解决方案是在Visual Studio 2019 16.6.1上发现的。

在添加这些参考资料时,我遇到了一些问题;它需要显式保存。(我执行
文件->保存所有
以避免类似错误)。关闭和重新启动VS有时也会对我有所帮助。根据您的描述,我创建了一个带有3个项目(1个主项目,2个类库项目)的演示。主项目添加来自2类库项目的引用,然后我打开项目依赖项,我无法取消选中类库。它将弹出一个窗口,其中显示“此依赖项是由项目系统添加的,无法删除”,请您提供一种方法,说明如何在我方重现您的问题。@Cole:无法重现。偶尔,它只是发生在一个随机项目中。是的,复选框应该被选中并显示为灰色,但有时它不是。这就是症状,我正在寻找根本原因或某种解决方案。@Ramya:csproj中的更改不是自动保存的,所以您需要手动保存。您可以使用Ctrl-Shift-S保存所有内容,包括csproj。这是一个不同的问题。我的解决方案只有60多个项目,而且似乎主要发生在SVN切换到不同分支之后。如果发生这种情况,则在切换后的第一次构建运行中。解决方法是关闭并重新打开解决方案一次或两次,通常在该解决方案关闭后重新打开。可以在VS 2015.3上看到,也可以在VS 2019上看到。下次看到此行为时,请检查“项目依赖项”对话框?请注意,如果问题来自正在“交叉连接”的csproj文件,则这将是一个永久性问题,而事实并非如此。无论如何,感谢您的提示,我将检查R#是否与此有关。间歇性行为可能是由编译竞争或IDE决定您确实需要重建项目X引起的。(对于我来说,VS2012出于某种原因,有时会在每次主项目中的代码更改时决定重建库项目).