我有一个针对 .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)
感谢@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>
现在可以通过选择构建配置来切换目标框架。