You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何从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文件夹中展示
    Visual Studio解决方案资源管理器展示效果

内容的提问来源于stack exchange,提问作者Mafu Josh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 18:15:00