为何从Directory.Build.props导入的.targets文件不在解决方案资源管理器Imports文件夹显示
已解决
该targets文件实际存在,只是被嵌套在Sdk.props->Microsoft.Common.props层级下,这是合理的,因为它就是从该路径加载的,是我之前没注意到。
问题描述
Visual Studio有一项实用功能,可在解决方案资源管理器中展示项目导入的*.props和*.targets文件,但从Directory.Build.props文件中导入的文件似乎不会显示在此列表中。
这可能是Visual Studio的功能设计、Bug,也可能是操作有误。目前不影响使用,Targets2.target文件可以正常生效,但如果能查看所有用到的targets文件会更方便。
C#项目复现步骤
- 也可克隆公开示例仓库复现问题
- 在Visual Studio 2022专业版中新建C#类库项目,目标框架为.NET 6
- 编辑.csproj文件,添加如下内容:
<ImportGroup> <Import Project="Targets1.targets" /> </ImportGroup>
- 在项目文件夹中创建Targets1.targets文本文件,内容如下:
<Project> <Target Name="Test1" AfterTargets="Build"> <Message Importance="High" Text="from Targets1" /> </Target> </Project>
- 在项目文件夹中创建Targets2.targets文本文件,内容如下:
<Project> <Target Name="Test2" AfterTargets="Build"> <Message Importance="High" Text="from Targets2" /> </Target> </Project>
- 在项目文件夹中创建Directory.Build.props文本文件,内容如下:
<Project> <Import Project="Targets2.targets" /> </Project>

项目构建验证
- 构建上述项目
- 在解决方案资源管理器中开启“显示所有文件”选项
- 此时可见的Imports文件夹下,仅显示Targets1.target,不显示Targets2.target
- 两个targets文件均能正常生效,但只有一个在Imports文件夹中展示

内容的提问来源于stack exchange,提问作者Mafu Josh
相关产品推荐
相关产品推荐

