Visual studio Visual Studio 2015:项目集合中已存在一个等效项目

Visual studio Visual Studio 2015:项目集合中已存在一个等效项目,visual-studio,visual-studio-2015,solution,csproj,Visual Studio,Visual Studio 2015,Solution,Csproj,尝试将现有项目添加回Visual Studio 2015解决方案时,VS会给出以下错误消息。我已经确认我还没有添加对我试图添加的项目的引用。是否有需要删除或清理的设置或缓存文件 等效项目(具有相同全局属性和 工具版本)已存在于项目集合中,并且 路径“D:\My\path\MyProject.csproj”。将等效项加载到此 项目集合,首先卸载此项目 仍然不确定是什么原因导致了这种情况,但似乎以相反的顺序添加依赖项目可以让我将所有项目重新添加。因此,首先添加所有子项目,然后添加它们所依赖的父项目。

尝试将现有项目添加回Visual Studio 2015解决方案时,VS会给出以下错误消息。我已经确认我还没有添加对我试图添加的项目的引用。是否有需要删除或清理的设置或缓存文件

等效项目(具有相同全局属性和 工具版本)已存在于项目集合中,并且 路径“D:\My\path\MyProject.csproj”。将等效项加载到此 项目集合,首先卸载此项目


仍然不确定是什么原因导致了这种情况,但似乎以相反的顺序添加依赖项目可以让我将所有项目重新添加。因此,首先添加所有子项目,然后添加它们所依赖的父项目。它们重新添加到溶液中的顺序可能导致了片状物。

这发生在我使用蓝屏后。以下几点似乎解决了这个问题:

  • 启动VS2015命令提示符
  • 运行“devenv/resetuserdata”

  • Windows重新启动为我解决了这个问题。 重新启动后,Visual Studio不会显示这种奇怪的错误消息。

    这为我提供了一种简单的预防措施,比运行{VSpath}\devenv.exe/resetuserdata要简单得多

    我发现,通过向项目中添加一个过滤器(尽管我并不特别需要),我可以强制VS2015创建一个.vcxproj.filters文件。 一旦到位,我就不再看到问题了


    顺便说一句,在我的例子中,问题是由卸载项目、在.vcxproj文件中进行复杂的更改(涉及属性值上的[MSBuild]算法)然后尝试重新加载项目而触发的,并且由于语法错误而失败。修复错误、删除/重新添加项目等都不起作用。“已存在”错误仍然存在。

    简单的“清洁解决方案”对我有效。

    在我的案例中,我在执行以下操作时看到此错误:

    我在2.vcroj中包含/导入了3.vcroj,在1.vcroj中包含了2.vcroj

    2.vcxproj中指向3.vcxproj的路径是错误的,这给了我上述错误


    修正了路径,错误消失了。不确定过滤器是如何关联的。

    这发生在我用外部编辑器处理项目文件之后。我可以通过退出VS并杀死VsHub.exe来解决这个问题


    似乎VsHub.exe缓存了项目的某些部分,并与VS混淆或不同步。我通过代码调用了它

    这为我解决了这个问题:

    Microsoft.Build.Evaluation.ProjectCollection.GlobalProjectCollection.LoadedProjects.FirstOrDefault(d => d.FullPath == projectFilePath) ??
                    Microsoft.Build.Evaluation.Project.FromFile(projectFilePath, new ProjectOptions())
    

    我在使用git切换分支时经常遇到这种情况。我发现,如果我“触摸ZFSin.vcxproj.filters”(项目过滤器文件),我可以右键单击未能加载的项目并“重新加载”。没有清理项目,也没有重新启动VS2017。(Touch是一个只更新文件时间戳的命令)。

    当解决方案在项目路径和其他路径中使用环境变量时,我遇到了这个问题。我想它希望找到
    %var1%\proj.vcxproj
    %var2%\proj.vcxproj
    ,但是
    %var1%
    %var2%
    具有相同的值。

    在我的情况下,该项目只有x64平台配置,而不是Win32平台配置。奇怪的是,该解决方案确实具有Win32平台配置,而且出于某种原因,Win32是当前的平台配置


    更改为x64后,我可以毫无问题地再次加载项目。我还删除了Win32平台配置以确保安全。

    小心!这是一个相当激烈的方法,因为它将重置所有Visual Studio设置,包括您可能已安装的任何加载项。天哪,我刚才做了什么?!?这很有效,但也删除了我所有的插件和自定义设置。我希望VS不要试图在这么多隐藏的地方缓存这么多东西。在过去的一周里,当我试图将一个项目从框架升级到标准时,我不得不这样做两次。依赖于升级项目的项目将出现此错误,直到我删除我的用户缓存。删除
    .vs
    文件夹、重新启动、清洗溶液以及手动删除
    bin
    obj
    文件夹在我的情况下没有任何作用。我必须这样做,还必须重新启动Visual Studio。OddClean,然后强制重新加载项目(右键单击)对我有效。我还牺牲了一个小毛绒玩具,这可能会有所帮助。手动清理(从解决方案中手动删除所有bin/obj文件夹)对meClean本身不起作用,使用
    tf reconcile/clean/recursive清理工作区。
    本身也不起作用。我必须退出Visual Studio并重新启动才能修复此问题。谢谢。它抱怨
    .filters
    文件的引用冲突,但
    .filters
    文件不存在。