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




