【问题标题】:Visual Studio 2015: An equivalent project is already present in the project collectionVisual Studio 2015:项目集合中已存在等效项目
【发布时间】:2015-12-04 16:26:43
【问题描述】:

尝试将现有项目添加回 Visual Studio 2015 解决方案时,VS 会给出以下错误消息。我已验证我尚未添加对我要添加的项目的引用。是否有我需要在某处删除或清理的设置或缓存文件?

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

【问题讨论】:

    标签: visual-studio visual-studio-2015 solution csproj


    【解决方案1】:

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

    【讨论】:

    • 我必须这样做,并重新启动 Visual Studio。奇数
    • 清理,然后强制重新加载项目(右键单击)对我有用。我还牺牲了一个小毛绒玩具,所以这可能有所帮助。
    • 手动清理(从解决方案中手动删除所有 bin / obj 文件夹)对我有用
    • 清洁本身不起作用,使用tf reconcile /clean /recursive . 清洁工作区本身也不起作用。除了解决问题之外,我还必须退出 Visual Studio 并重新启动。
    【解决方案2】:

    这发生在我用外部编辑器弄乱我的项目文件之后。我能够通过退出VS并杀死VsHub.exe来解决问题。

    似乎 VsHub.exe 缓存了项目的某些部分,并变得与 VS 混淆或不同步。

    【讨论】:

    • 谢谢。它抱怨 .filters 文件有冲突的引用,但 .filters 文件不存在。
    【解决方案3】:

    我通过代码调用它。

    这为我解决了问题:

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

    【讨论】:

      【解决方案4】:

      这个link 为我提供了一个简单的预防措施,比运行 {VSpath}\devenv.exe /resetuserdata 更温和

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

      顺便说一句,在我的情况下,问题是通过卸载项目触发的语法错误。修复错误、删除/重新添加项目等不起作用。 “已经存在”的错误仍然存​​在。

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            【解决方案7】:

            这发生在我蓝屏后。以下似乎解决了它:

            1. 启动 VS2015 cmd 提示符。
            2. 运行“devenv /resetuserdata”

            【讨论】:

            • 小心!这是一种相当激进的方法,因为它会重置您的所有 Visual Studio 设置,包括您可能已安装的任何插件。
            • 天哪,我刚刚做了什么?!?
            • 这有效,但也删除了我所有的插件和自定义设置。我希望 VS 没有试图在这么多隐藏的地方缓存这么多东西。
            • 在过去一周尝试将项目从框架升级到标准时,我不得不这样做两次。在我删除用户缓存之前,依赖于升级项目的项目会出现此错误。删除 .vs 文件夹、重新启动、清理解决方案以及手动删除 binobj 文件夹对我来说没有任何作用。
            【解决方案8】:

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

            【讨论】:

              【解决方案9】:

              就我而言,我在执行以下操作时看到了这个错误:

              我在 2.vcxproj 中包含/导入 3.vcxproj,而 2.vcxproj 包含在 1.vcxproj 中。

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

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

              【讨论】:

                【解决方案10】:

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

                【讨论】:

                  【解决方案11】:

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

                  更改为 x64 后,我可以再次加载项目而不会出现问题。为了确保安全,我还删除了 Win32 平台配置。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2016-01-01
                    • 2015-12-05
                    • 2017-03-19
                    • 1970-01-01
                    • 2016-02-26
                    相关资源
                    最近更新 更多