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

如何阻止Visual Studio自动改写Glob格式的项目引用?

阻止Visual Studio展开Glob模式的项目引用

我完全懂你的困扰——用Glob模式..\Feature\*\*.csproj引用项目确实让解决方案维护更灵活,但VS时不时把它拆成具体项目路径的行为真的很烦人。好在有几个实用的方法可以解决这个问题:

1. 使用DisableGlobExpansion属性(推荐方案)

MSBuild从16.8版本(对应Visual Studio 2019 16.8+或Visual Studio 2022)开始支持DisableGlobExpansion属性,它能直接阻止VS和MSBuild自动展开Glob格式的项目引用。

只需要在你的根项目文件(.csproj)里添加这个属性即可:

<PropertyGroup>
  <!-- 禁止VS自动展开Glob模式的项目引用 -->
  <DisableGlobExpansion>true</DisableGlobExpansion>
</PropertyGroup>

添加后,VS会保留你原本的Glob引用写法,不会再自动替换成一条条具体的项目路径。

2. 排查NuGet相关触发场景

你猜测的NuGet关联是对的——VS在执行NuGet包还原、更新包、重新加载解决方案这类操作时,项目系统会重新解析依赖关系,这很可能就是触发Glob展开的原因。如果上面的属性还不能完全解决问题,可以试试:

  • 暂时关闭VS的自动NuGet包还原(路径:Tools > Options > NuGet Package Manager > General,关闭"Allow NuGet to download missing packages"),手动执行还原操作,观察是否还会出现展开问题;
  • 检查你使用的NuGet包是否包含修改项目引用的自定义目标(比如部分SDK类包可能会修改项目结构),如果有,可以尝试更新包版本或者临时移除这类包测试。

3. 清理VS本地缓存

有时候VS的本地缓存会引发一些奇怪的项目行为,你可以尝试删除解决方案根目录下的.vs隐藏文件夹,然后重启VS重新加载解决方案,这能解决不少缓存导致的异常问题。

内容的提问来源于stack exchange,提问作者Richard Szalay

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:06:47