有没有办法在 VS 2022 解决方案资源管理器中切换显示的目标框架?

问题描述 投票:0回答:1

我有一个针对 .Net Framework 4.8 和 .NET 7.0 的多目标 C# 项目。 我的一些源代码文件仅包含上述目标框架之一。 解决方案资源管理器从 .NET 7.0 的角度显示该项目。

我的问题是:

是否可以切换此视角,以便我可以从项目文件中指定的特定目标框架的角度查看包含文件?

我的 csproj 文件看起来像这样:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>net7.0;net48</TargetFrameworks>
    ..
    <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
    <EnableDefaultContentItems>false</EnableDefaultContentItems>
    <EnableDefaultItems>false</EnableDefaultItems>
    ..
  </ProjectGroup>

  ..

  <ItemGroup>
    <Compile Include="sourcecode_A.cs" />
    <Compile Include="sourcecode_B.cs" />
    <Compile Include="sourcecode_C.cs" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetFramework)'=='net7.0'">
    <Compile Include="sourcecode_X.cs" />
    ..
  </ItemGroup>

  <ItemGroup Condition="'$(TargetFramework)'=='net48'">
    <Compile Include="sourcecode_Y.cs" />
    ..
  </ItemGroup>
  
  ..

</Project>

解决方案资源管理器仅显示文件(来自 Perspective .net 7.0)

  • 源代码_A.cs
  • 源代码_B.cs
  • 源代码_C.cs
  • 源代码_X.cs
c# visual-studio-2022 projects-and-solutions multitargeting
1个回答
0
投票

感谢@wenbin-geng的提示,我解决了问题如下:

我在解决方案中添加了另外两个构建配置:net48_Debug 和 net7_0_Debug。

我修改了我的项目文件:

<PropertyGroup>
  <TargetFrameworks Condition="'$(Configuration)'=='Debug' Or '$(Configuration)'=='Release'">net7.0;net48</TargetFrameworks>
  <TargetFramework Condition="'$(Configuration)'=='net48_Debug'">net48</TargetFramework>
  <TargetFramework Condition="'$(Configuration)'=='net7_0_Debug'">net7.0</TargetFramework>
  ..
  <EnableDefaultCompileItems>false</EnableDefaultCompileItems>
  <EnableDefaultContentItems>false</EnableDefaultContentItems>
  <EnableDefaultItems>false</EnableDefaultItems>
  ..
  <Configurations>Debug;Release;net48_Debug;net7_0_Debug</Configurations>
</ProjectGroup>

现在可以通过选择构建配置来切换目标框架。

© www.soinside.com 2019 - 2024. All rights reserved.