【问题标题】:Project Properties don't open - "There are no property pages for the selection"项目属性未打开 - “没有可供选择的属性页”
【发布时间】:2016-08-01 14:59:39
【问题描述】:

Visual Studio 突然不会在多个解决方案文件中显示多个项目的项目属性。

我在解决方案资源管理器中右键单击一个项目,然后得到一个错误框:There are no property pages for the selection.

我认为问题不在于项目文件本身——我在从通用 git 存储库中提取的项目文件中看到了这一点,没有任何更改;这些项目昨天运行正常,并继续为我在办公室的朋友顺利运行。

我不知道以任何方式修改了 Visual Studio 设置。

知道是什么原因造成的吗?

我在 Windows 7 (SP1) 上使用 Microsoft Visual Studio Professional 2015,版本 14.0.24720.00 Update 1,并且我正在处理 C++ 项目。

【问题讨论】:

  • 您将不得不旋转修复/重新安装命运之轮。但是首先彻底检查磁盘驱动器是明智的,这当然不健康。
  • @HansPassant:谢谢! “彻底检查磁盘驱动器”是什么意思?您是指项目文件中的数据问题,还是潜在的硬件问题? (我没有看到其中任何一个看起来如何?)
  • 这个事故太不具体和不寻常,无法给你具体的建议去哪里看。我可以猜到,但这只会分散你真正应该做的事情。这是检查您的磁盘驱动器是否仍处于良好状态。如果您不知道该怎么做,请查看 superuser.com
  • @HansPassant 谢谢!

标签: visual-studio visual-studio-2015 cmake


【解决方案1】:

我找到了问题的根源!问题出在我的VCTargetsPath 系统环境变量中。

原来我的VCTargetsPath 设置为:

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140 

——这似乎是正确的;这是正确的目录。

很遗憾,它缺少最后的反斜杠 - 它必须是:

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\

如果没有最后的反斜杠,它就不起作用。

显然,我遇到的问题是 Visual Studio 尝试在此路径顶部错误地焊接路径的各种实例,例如我尝试构建一个android项目时出现以下错误(注意粗体):

1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Clang.targets(210,5):错误 MSB4062: 无法从程序集 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140Microsoft.Build.CppTasks.Common.dll 加载“ClangCompile”任务。 无法加载文件或程序集 'file:///C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140Microsoft.Build.CppTasks.Common.dll 或其中之一它的依赖关系。系统找不到指定的文件。

我已经修复了变量,它确实解决了这个问题(以及我在第一个问题之后发现的几个明显相关的问题。)

如果其他用户遇到类似问题,我强烈建议他们检查 VCTargetsPath 是否存在可能的错误,尤其是缺少最后的反斜杠。


为了帮助其他人解决同样的问题,以下是我遇到的各种问题。所有这些仅与 C++ 项目有关,并且都通过我描述的修复解决了。

1.创建新项目时出错。如果我尝试在解决方案中创建新的 C++ 项目(例如空 C++ 项目),我会收到两条错误消息:

  • 'null' is null or not an object
  • Exception from HRESULT: 0x800A138F

然后创建项目 -- 尽管在屏幕底部的状态栏中,我看到一条消息:正在创建“Project1”...项目创建失败。

2。无法将现有文件添加到项目中。如果我尝试将现有源文件添加到项目中,我会收到两条连续的错误消息:

  • The desired name for C:\tmp\foo.cpp is invalid.
  • The operation could not be completed. The parameter is incorrect. 该文件未添加到解决方案中。

3.无法访问项目属性或属性页。当我尝试访问项目的属性时,我得到一个带有标题MyProject Property Pages(其中MyProject 是项目名称)的白色弹出窗口和错误:There are no property pages for the selection.

如果我尝试查看属性页,我会得到相同的错误,除了项目名称之外,标题包含属性页的名称,例如Microsoft.Cpp.Win32.user Property Pages.

4. Visual Studio 无法识别项目何时不是最新的。 Visual Studio 仍然构建我的 C++ 项目,并正确构建它们。但是,一旦我构建了一个项目,我就会遇到一个新问题:对源文件进行更改然后执行另一个构建没有任何作用 - 输出将项目列为最新的,即使它不是。为了正确构建,我现在需要强制重新构建。

【讨论】:

  • 请检查HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions 下的注册表并验证是否有VCTargetsPathXX 的条目。我有几个,并且都更喜欢相应的环境变量而不是默认值。事实上,默认值有一个尾随反斜杠。因此,删除系统环境变量 VCTargetsPath 可能会产生完全相同的效果。
【解决方案2】:

如果你安装了 VS2017

来自 PowerShell:

[Environment]::SetEnvironmentVariable("VCTargetsPath", "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\", "Machine")

【讨论】:

    【解决方案3】:

    相同的症状,不同的原因: 对我来说,当我尝试为 VS2015 中的项目将平台工具集设置为 VS2010/v100 时,出现了这个问题。不再可访问的项目属性并给出“没有属性页 [...]”错误。

    原因是VS2010安装为德文版,而VS2015设置为英文版。将 VS2015 更改为德语解决了问题,将两者都更改为英语解决了问题。 有趣的是 VS2010 是英文的,但 VS2015 设置为德文也可以。

    【讨论】:

      【解决方案4】:

      确保打开的是解决方案文件(关闭 Visual Studio,双击 .sln 文件在 Visual Studio 中打开)。

      【讨论】:

        【解决方案5】:

        以上没有帮助我,但是完全删除 VCTargetsPath 变量确实起到了作用。在 vs2019 和 2019 预览版 2 上测试

        【讨论】:

        【解决方案6】:

        我在使用 VS2019 时,在我从事多年的一些 C++ 项目中出现“NULL 为空”问题。对我有用的解决方案是退出 VS2019,删除文件夹/目录 .VS(即与我的 VS2019 解决方案 .SLN 文件位于同一目录中),然后重新启动 VS2019。

        【讨论】:

          【解决方案7】:

          只需关闭设计水龙头并重新打开即可。它对我有用。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-10-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-12-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多