winforms Visual Studio未检测到窗体

flvlnr44  于 2023-02-19  发布在  其他
关注(0)|答案(2)|浏览(171)

我已 checkout 使用SDK样式csproj文件的现有WinForms,Visual Studio未将该窗体检测为可设计的窗体。因此,无法使用WinForms设计器。
我也可以通过创建一个新的net6 WinForms项目,然后删除包含有关子类型信息的csproj.user文件来重现此问题。在阅读了以前的Visual Studio版本中的类似错误后,应该会自动检测到窗体并将其添加到csproj.user文件中。但是,我似乎没有遇到这种情况。
Visual Studio版本:17.4.4
茨普罗日

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net6.0-windows</TargetFramework>
    <Nullable>enable</Nullable>
    <UseWindowsForms>true</UseWindowsForms>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>
</Project>
v2g6jxz6

v2g6jxz61#

csproj文件可能缺少WinForms设计器正常工作所必需的某些引用或元数据。您可以尝试将下列行添加到csproj文件中,以指定窗体文件的属性并包括WinForms设计器目标:

<PropertyGroup>
  <TargetWinForms>true</TargetWinForms>
</PropertyGroup>
 
<ItemGroup>
  <Compile Update="Form1.cs">
    <SubType>Form</SubType>
  </Compile>
  <Compile Update="Form1.Designer.cs">
    <DependentUpon>Form1.cs</DependentUpon>
    <SubType>Form</SubType>
  </Compile>
</ItemGroup>

将Form1.cs和Form1.Designer.cs替换为实际窗体文件的名称。
如果这样做不起作用,您可以尝试在Visual Studio中使用WinForms模板重新创建项目,以确保包含所有必需的引用和元数据。然后,将现有源代码复制到新项目中。

bfrts1fy

bfrts1fy2#

经过进一步测试并与Visual Studio支持部门联系后,我发现此问题与“在单独进程中运行代码分析”设置有关。如果禁用此设置,Visual Studio将不会自行检测窗体。启用此设置后,一切正常。

相关问题