You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Visual Studio解决方案资源管理器误将类识别为自定义控件求助

解决Visual Studio中文件被误识别为用户控件的问题

我之前也碰到过一模一样的糟心情况!双击文件就跳设计器,每次都得绕路右键选“查看代码”,不仅麻烦,心里还总担心会不会埋下什么隐性问题。别慌,这几个方法应该能彻底搞定:

方法一:修改项目文件(最彻底的解决方案)

Visual Studio是通过项目文件(.csproj/.vbproj)里的配置来识别文件类型的,所以直接改这里最靠谱:

  • 右键你的项目,选择“卸载项目”
  • 右键已经卸载的项目,点击“编辑 [你的项目名].csproj”(或者对应的.vbproj
  • 在打开的XML文件里,找到那些被误识别的文件对应的<Compile>节点。你大概率会看到类似这样的内容:
    <Compile Include="MyMisclassifiedClass.cs">
      <SubType>UserControl</SubType>
    </Compile>
    
    或者还有关联的<Designer>节点。把多余的<SubType>属性删掉,或者清理掉设计器相关的配置,改成最简单的编译节点:
    <Compile Include="MyMisclassifiedClass.cs" />
    
  • 保存项目文件,右键项目选择“重新加载项目”。之后再双击文件,应该就直接打开代码编辑器了。

方法二:重置单个文件的默认打开方式

如果不想动项目文件,可以试试给单个文件重新指定编辑器:

  • 在解决方案资源管理器里,右键有问题的文件,选择“打开方式...”
  • 在弹出的对话框中,找到并选中对应语言的代码编辑器(比如“CSharp编辑器”),然后点击“设为默认值”
  • 点击确定后,双击文件就会用你指定的代码编辑器打开了。不过这个方法偶尔会被项目文件的配置覆盖,所以如果方法一能用,优先选方法一。

方法三:清理Visual Studio缓存(解决缓存导致的识别异常)

有时候是VS的缓存抽风导致的误识别,清理一下缓存说不定就好了:

  • 完全关闭Visual Studio
  • 删除以下路径下的缓存文件(放心删,重启VS会自动重建):
    • %LocalAppData%\Microsoft\VisualStudio\[你的VS版本号]\ComponentModelCache
    • %LocalAppData%\Microsoft\VisualStudio\[你的VS版本号]\Temp
  • 重新打开VS并加载项目,看看问题是否解决。

补充说明

这种误识别通常是因为文件最初被创建为用户控件,后来改成纯代码类但项目配置没同步;或者复制其他项目的文件时,把用户控件的属性也带过来了。虽然现在编译运行正常,但这些残留的配置确实可能在后续操作中引发奇怪的问题,所以尽早修正更稳妥。

内容的提问来源于stack exchange,提问作者LairdPleng

火山引擎 最新活动