文件嵌套不适用于类或共享库项目

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

在 Visual Studio 2019 Web 项目中,解决方案资源管理器中的文件嵌套就像一个魅力。如果您添加一个名为

ClassA.cs
的文件和另一个名为
ClassA.Custom.cs
的文件,它们将按应有的方式嵌套。

但是对于类或共享库项目它根本不起作用。如果您将设置更改为“默认”或“Web”,甚至添加自定义文件嵌套设置,都没关系。

有没有办法配置 Visual Studio 2019,以便文件嵌套也适用于类库项目等?

我知道可以手动更改 *.csproj 文件以添加带有

<DependentUpon>
标签的条目,就像在早期的 Visual Studio 版本中一样,但我真的不喜欢为我拥有的所有类手动更改它的想法。

<Compile Update="$(ProjectDir)\Person.*.cs">
  <DependentUpon>$(ProjectDir)\Person.cs</DependentUpon>
</Compile>
visual-studio-2019 solution-explorer
5个回答
12
投票

对于使用 Visual Studio 2022 和非 Web 项目的人来说,这是来自 Github 的解决方案,帮助我修复了它。

要在 VS 2022 中为非 Web 项目启用可配置文件嵌套,请将其添加到您的 .csproj 文件中:

<ItemGroup>
  <ProjectCapability Include="ConfigurableFileNesting" />
  <ProjectCapability Include="ConfigurableFileNestingFeatureEnabled" />
</ItemGroup>

9
投票

原答案:

Github.com 和开发者社区上有一个关于此主题的问题很活跃:

存在解决此问题的方法 - 至少适用于 .Net Standard 2.0。将以下行添加到您的 *.csproj 文件中:

<ItemGroup> <ProjectCapability Include="DynamicDependentFile" /> <ProjectCapability Include="DynamicFileNesting" /> </ItemGroup>

更新:

此问题应从 Visual Studio 2019 Verison 16.7 开始修复。


4
投票

Piggy 回到@phihi 的答案。

@phihi 的解决方案确实实际上适用于.NET Core 3.1 库;但除此之外,还必须在 solution 级别添加一个 .filenesting.json 文件。似乎还要求新的 .filenesting.json 位于解决方案级别的“Solution Items”文件夹中(文件夹名称可能并不重要)。

所需的嵌套设置可以选择独立定义。而不是使用所有现有默认设置创建新文件,只要设置“root”:false - 这本质上是将设置附加到现有默认配置上,而不会丢失任何默认设置.

取得巨大成功🤘


0
投票

我在 .net6 上的类库项目中遇到了这个问题。不要使用 类库 模板,而是使用 Razor 类库

Template window

您希望 Razor 组件选项位于 添加新项目窗口中。

Available item templates


0
投票

如果您在解决方案中打开文件而不是解决方案本身,则 aspx、aspx.vb 会消失。只需打开解决方案,而不是文件,就可以解决我的情况

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