winforms Visual Studio 2022中的新项目调试对话框--为什么以及如何更改?

w8f9ii69  于 2023-01-31  发布在  其他
关注(0)|答案(1)|浏览(332)

我在Visual Studio Enterprise 2022中加载了一个.NET 4.8 C# WinForms项目。项目属性页的Debug部分(在解决方案资源管理器中右键单击该项目,然后选择Properties...(属性...))如下所示:

请注意,有一个清晰的Start action部分。
我在Visual Studio Enterprise 2022中加载了另一个.NET 4.8 C# WinForms项目。此项目属性对话框的Debug部分如下所示:

请注意,“调试常规”部分现在声明:
启动配置文件的管理已移到专用对话框中。可以通过下面的链接、菜单栏中的“调试”菜单或标准工具栏上的“调试目标”命令访问该对话框。
这里和网络上其他地方的其他海报已经得出结论:(a)新的(后一个)对话框是由于Visual Studio 2022(它是 * 不是 *,因为上面的两个示例都出现在Visual Studio 2022企业版中;或者(B)这种情况只发生在.NET Core项目中(这也不对--上面的两个项目都是WinForms 4.8项目)。那么,如果它不是Visual Studio 2022,也不是.NET Core--那么它是什么呢?是什么导致以前的Debug属性页被新的“专用对话框”版本所取代呢?
此外,当调试对话框中不再出现StartAction时,如何设置StartAction
[P.S.请不要因为我发布屏幕图像而责备我--它们在这里有一个非常明确的目的,我在我的问题中包括了这些对话框中出现的可搜索文本,以便遇到类似问题的其他人可以找到这篇文章...]

gpfsuwkq

gpfsuwkq1#

如何/为什么为两个.NET 4.8项目显示不同的项目属性页?

这是关于项目的格式:

  • MSBuild项目格式的项目文件将使用旧的“调试设置”窗口。
  • SDK项目格式的项目文件将使用新的调试设置窗口。
    如何为SDK风格的项目设置StartAction?

在项目属性中,转到调试部分的“常规”,然后单击“打开调试启动配置文件UI”。

  • 可以为当前调试配置文件指定命令行参数。
  • 或者,您可以创建一个新的概要文件(Executable),并根据需要指定可执行文件(就像在您希望调试VS的设计时指定VS一样)。

创建新的概要文件后,您可以从调试工具栏下拉按钮中选择它并启动该概要文件。
剩下的答案只适用于那些希望看到项目格式之间的区别,以及那些新的项目调试设置的人。

MSBuild项目格式

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{DE16D3B5-E02E-44A1-B223-2C25ED3F14D9}</ProjectGuid>
    <OutputType>WinExe</OutputType>
    <RootNamespace>WindowsFormsApp1</RootNamespace>
    <AssemblyName>WindowsFormsApp1</AssemblyName>
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    <Deterministic>true</Deterministic>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Deployment" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.Net.Http" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Form1.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Include="Form1.Designer.cs">
      <DependentUpon>Form1.cs</DependentUpon>
    </Compile>
    <Compile Include="Program.cs" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="Properties\" />
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

SDK项目格式

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <OutputType>WinExe</OutputType>
        <TargetFramework>net48</TargetFramework>
        <LangVersion>10.0</LangVersion>
        <ImplicitUsings>enable</ImplicitUsings>
    </PropertyGroup>
    <ItemGroup>
        <Reference Include="System" />
        <Reference Include="System.Core" />
        <Reference Include="System.Xml.Linq" />
        <Reference Include="System.Data.DataSetExtensions" />
        <Reference Include="Microsoft.CSharp" />
        <Reference Include="System.Data" />
        <Reference Include="System.Deployment" />
        <Reference Include="System.Drawing" />
        <Reference Include="System.Net.Http" />
        <Reference Include="System.Windows.Forms" />
        <Reference Include="System.Xml" />
    </ItemGroup>
    <ItemGroup>
        <Using Include="System.Windows.Forms" />
    </ItemGroup>
</Project>

相关问题