【问题标题】:Filenesting not working for Class or Shared Library Projects文件嵌套不适用于类或共享库项目
【发布时间】:2020-04-11 20:13:53
【问题描述】:

在 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


    【解决方案1】:

    原答案:

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

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

    &lt;ItemGroup&gt; &lt;ProjectCapability Include="DynamicDependentFile" /&gt; &lt;ProjectCapability Include="DynamicFileNesting" /&gt; &lt;/ItemGroup&gt;

    更新:

    这个问题应该从 Visual Studio 2019 Verison 16.7 开始修复。

    【讨论】:

    • 这在包含 TypeScript 源文件和输出 JS 的 .NET Core 3.1 类库项目中对我不起作用。我正在使用 VS 2019 16.10。
    • does 实际上适用于 .NET Core 3.1 库...但必须有一个 .filenesting.json 在解决方案级别添加。似乎还要求它位于“Solution Items”文件夹中。可以选择单独定义所需的嵌套设置。而不是使用所有现有默认设置创建新文件,只要您设置 "root": false - 实质上是将设置附加到现有默认配置。
    • 这似乎在 VS2022 中被破坏了 :(
    【解决方案2】:

    支持@phihi 的答案。

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

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

    大成功?

    【讨论】:

    • 也适用于 .NET 5.0。非常好!
    • @Mat 感谢您的验证!
    • 这不适用于带有 .NET 5.0 的 Class Library。 (Microsoft Visual Studio Community 2019 版本 16.11.0)
    • 在 VS Community 2022 RC3 中也不适合我。我的文件存储在解决方案旁边,添加了一个解决方案项目,内容设置为与屏幕截图相同的内容,但在我的情况下它是 .Records.cs
    • @NathanAldenSr 您提到您的 filenesting.json 文件存储在解决方案旁边;而 is 应该在解决方案之内,但在任何项目之外……这就是你的意思吗?仍然无法正常工作?我还没有在 VS 2022 中验证这一点。
    猜你喜欢
    • 1970-01-01
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多