Visual Studio 2019类库及共享库项目文件嵌套失效问题求助
让Visual Studio 2019类库项目自动启用文件嵌套的方法
嘿,我太懂你不想手动给每个文件加<DependentUpon>标签的烦躁了!其实VS2019里有两种不用手动改的方案,能让类库、共享库项目自动实现像Web项目那样的文件嵌套效果:
方案1:给单个项目添加自定义文件嵌套规则
这种方法适合只给特定几个类库项目配置的场景:
- 打开解决方案资源管理器,找到顶部工具栏里的「文件嵌套」按钮(图标是两个叠在一起的文件,找不到的话可以去「视图」→「其他窗口」→「文件嵌套」打开面板)
- 在弹出的「文件嵌套」面板中,点击「添加规则」
- 填写规则详情:
- 规则名称:随便取个好记的,比如「Partial Class Files」
- 父文件模式:
{name}.cs - 子文件模式:
{name}.*.cs - 操作类型:选择「嵌套」
- 保存规则后,右键你的类库项目,选择「重新加载项目」,再看解决方案资源管理器,
ClassA.Custom.cs这类文件就会自动嵌套到ClassA.cs下面了
方案2:全局配置让所有类库项目自动生效
如果你的解决方案里有很多类库项目,想一次性全部配置,可以用全局的Directory.Build.props文件:
- 在你的解决方案根目录下新建一个名为
Directory.Build.props的文件 - 把下面的代码粘贴进去:
<Project> <ItemGroup> <!-- 自动将形如 {name}.*.cs 的文件嵌套到 {name}.cs 下 --> <Compile Update="*.cs" Condition="Exists('$(MSBuildProjectDirectory)\$(FileNameWithoutExtension).cs') And !$(FileName.Equals($(FileNameWithoutExtension)))" > <DependentUpon>$(FileNameWithoutExtension).cs</DependentUpon> </Compile> </ItemGroup> </Project>
- 保存文件后,重新加载所有类库项目,所有符合
Xxx.Yyy.cs格式的文件都会自动嵌套到对应的Xxx.cs父文件下
注意事项
- 如果之前你给项目改过文件嵌套的设置(比如改成了「Web」),记得改回「默认」,避免自定义规则和预设规则冲突
- 要是配置后没立刻生效,试试重启Visual Studio 2019,某些版本需要重启才能加载新的规则
内容的提问来源于stack exchange,提问作者phifi
相关产品推荐
相关产品推荐

