Visual Studio无法识别SDK风格csproj的WinForms窗体,无法启用设计器
WinForms设计器无法识别SDK风格csproj中的窗体(VS17.4.4)
针对你遇到的问题,这里有几个可行的解决办法:
1. 直接在csproj中显式配置窗体文件属性
不需要依赖自动生成的csproj.user,直接在项目文件里给每个窗体的相关文件添加标记,VS就能识别设计器了。在你的csproj中添加如下内容:
<ItemGroup> <!-- 替换为你的实际窗体文件名 --> <Compile Update="Form1.cs"> <SubType>Form</SubType> </Compile> <Compile Update="Form1.Designer.cs"> <DependentUpon>Form1.cs</DependentUpon> </Compile> <EmbeddedResource Update="Form1.resx"> <DependentUpon>Form1.cs</DependentUpon> </EmbeddedResource> </ItemGroup>
保存后重新加载项目,双击窗体文件即可打开设计器。
2. 手动重建csproj.user文件
如果你更倾向于用csproj.user来管理,手动在项目目录下创建[你的项目名].csproj.user文件,填入以下内容:
<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup> <Compile Update="Form1.cs"> <SubType>Form</SubType> </Compile> </ItemGroup> </Project>
替换其中的Form1.cs为你的实际窗体文件名,保存后重新加载项目即可。
3. 清理VS组件缓存
如果前两种方法都无效,试试重置VS的组件缓存:
- 关闭所有Visual Studio实例
- 打开文件资源管理器,导航到
%LOCALAPPDATA%\Microsoft\VisualStudio\17.0_xxxxxx(xxxxxx为随机字符串)目录,删除ComponentModelCache文件夹下的所有文件 - 重新打开项目
问题说明
在Visual Studio 17.4.4版本中,自动检测WinForms窗体并生成csproj.user文件的功能存在故障,删除该文件后无法自动重建,导致设计器无法识别窗体。通过手动配置SubType属性,就能让设计器正常识别窗体文件。
内容的提问来源于stack exchange,提问作者Mats
相关产品推荐
相关产品推荐

