Visual Studio - 项目显示为“其他文件”

时间:2014-06-17 08:59:27

标签: c# .net visual-studio

这很奇怪。我的解决方案中有一个C#类库项目。如果我在此项目中打开.cs文件,代码编辑器上的Project下拉菜单会显示它属于'杂项文件'。

Screenshot of the problem

其他症状:如果我转到项目的属性并查看Assembly Information,则所有值都为空,尽管AssemblyInfo.cs文件中存在值。

这两个都很烦人,但问题是

  • 我没有对项目中的任何文件进行智能感知
  • 我似乎无法在调试器中逐步执行它(它告诉我文件不属于解决方案,因此无法调试)。

Assembly info is blank

我试过了:

  • 梳理.csproj文件并与解决方案中的其他人进行比较(无欢乐)
  • 重新创建.csproj文件并覆盖旧文件(一直工作直到我将分支合并到主干,然后重新出现问题)
  • 在键盘上敲我的头(头疼)
谷歌没有发现任何事情。有没有人对这里发生的事情有任何想法?

14 个答案:

答案 0 :(得分:33)

我如何解决我的问题:

  1. 转到解决方案资源管理器中显示为杂项文件的文件。
  2. 右键单击文件,然后选择从项目中排除。
  3. 右键单击文件所在的项目/文件夹,然后单击“添加现有项目”,并将刚刚删除的文件添加回项目中。

答案 1 :(得分:9)

我在VS 2017也有这个问题 我发现这个miscellaneous文件是在VS之外添加的文件。因此,如果切换到另一个git分支(有新文件),不关闭VS并点击“#34; Reload" VS中的按钮(当它检查在VS外部修改sln / csproj文件时)然后这些新文件未被VS正确解析并且标记为"为miscellaneous

作为解决方法,我关闭VS,从磁盘中删除文件夹.vs并再次运行VS.在VS完全初始化后,这些新文件将被成功解析。 请注意,这样可以清除StartUp Project等自定义设置。

答案 2 :(得分:4)

我遇到了完全相同的问题,事实证明我的项目中的一些XAML文件设置为使用动作' XamlAppDef' (即将其构建为XAML工作流程),当我将其转回“编译”时,我的项目下拉菜单立即从(杂项文件)转到正确的项目。

答案 3 :(得分:4)

以下是解决方案:

  • 转到工具菜单上的选项,然后在环境节点中选择文档。 (如果文档未显示在列表中,请选择“选项”对话框中的“显示所有设置”。)
  • 勾选“解决方案资源管理器中的其他文件”,然后点击确定。 (此选项在解决方案资源管理器中显示“其他文件”节点。其他文件是与项目或解决方案无关的文件,但如果勾选此选项,则可以在解决方案资源管理器中显示以方便使用。)
  • 在“其他文件”下的解决方案资源管理器中找到您的文件。然后将文件拖放到它应该属于的位置,瞧!这会将文件复制到您删除的位置。如果您愿意,现在可以安全地删除Miscellaneous Files文件夹下的旧文件。

答案 4 :(得分:4)

在VS2017中,我能够通过删除* .vs文件夹和* .user文件来解决此问题

答案 5 :(得分:1)

从2017年升级后,我在VS2019中遇到了这个问题。解决方案的重新生成和修复解决了该问题。

  1. 构建->批量构建->全选->清理
  2. 构建->批量构建->全选->构建

答案 6 :(得分:1)

我在带有类文件的 VS 2019 社区中遇到了这个问题,而 KING 的排除文件并重新添加它的解决方案对我不起作用。我能够通过

解决这个问题
  • 重命名有问题的 cs 文件
  • 右键单击项目并选择添加 > 类...
  • 添加与旧文件同名的新类文件
  • 复制旧文件的内容并粘贴到新文件中,覆盖默认内容
  • 删除旧的重命名文件

答案 7 :(得分:0)

由于TypeScript,请检查您的文件是否与“include”部分中tsconfig.json文件中指定的模式匹配。如果.ts文件没有被tsconfig包含,那么intellicense会将其显示为Miscellaneous。

答案 8 :(得分:0)

在尝试了所有其他提供的解决方案之后,对我有用的是:

  • 编辑.gitattributes文件。
  • 添加*.xproj text eol=crlf

这样我的VS2015 xproj样式的.NET Core / Standard项目再次起作用。

原来我的git放了UNIX风格的EOL,让VS感到困惑。

答案 9 :(得分:0)

检查链接https://www.reddit.com/r/VisualStudio/comments/b8vbj8/help_netf461_project_opened_in_vs2019_all_files/

  1. 在解决方案资源管理器中右键单击“参考”
  2. 选择“管理NuGet软件包”
  3. 在“已安装”标签下,搜索“ Microsoft.Net.Compilers”
  4. 选择“ Microsoft.Net.Compilers”
  5. 在“ Microsoft.Net.Compilers”的侧窗口中,单击更新按钮

    • VS2015与.NET Compiler 1.x.x兼容
    • VS2017与.NET Compiler 2.x.x兼容
    • VS2019与.NET Compiler 3.x.x兼容

因此,只需根据您的版本更新Microsoft.Net.Compilers

答案 10 :(得分:0)

如果解决方案资源管理器中未显示该文件,请尝试单击解决方案资源管理器顶部的“显示所有文件”按钮。如果文件可见并且位于您希望它们位于的项目下,但是该文件的项目中仍列出了“其他”,则右键单击这些文件,然后选择“包含在项目中”。否则,请尝试将它们拖到正确的项目中。

我刚刚在VS 2017中遇到了这个问题,这对我有用。

答案 11 :(得分:0)

如果仍然存在问题,则可以检查Nuget软件包。在VS 2017中,默认情况下,某些项目将包含对Microsoft各种编译器库的引用。这些几乎肯定是不需要的。以我为例,删除它们会立即解决其他文件问题。

我不记得确切是哪个Nugets,但是我很确定其中一个是- Microsoft.CodeDom.Providers.DotNetCompilerPlatform

答案 12 :(得分:0)

我以某种方式通过转到属性(右键单击该文件并选择“属性”)解决了这个问题。生成操作设置为内容。只需将其更改为“编译”即可解决问题。

答案 13 :(得分:-1)

也许您只能在另一个解决方案中打开错误项目 并在新解决方案中添加所需的项目