Visual studio 防止Visual Studio重写项目引用

Visual studio 防止Visual Studio重写项目引用,visual-studio,msbuild,Visual Studio,Msbuild,我有一个大型解决方案,其中根项目包括glob的功能项目: <ProjectReference Include="..\Feature\*\*.csproj" /> 尽管在参考文献列表中看起来不太好,但这是可行的,但Visual Studio偶尔会在解决所有项目参考文献的情况下重写csproj的问题: <ProjectReference Include="..\Feature\A\A.csproj" /> <ProjectReference Include="..\

我有一个大型解决方案,其中根项目包括glob的功能项目:

<ProjectReference Include="..\Feature\*\*.csproj" />
尽管在参考文献列表中看起来不太好,但这是可行的,但Visual Studio偶尔会在解决所有项目参考文献的情况下重写csproj的问题:

<ProjectReference Include="..\Feature\A\A.csproj" />
<ProjectReference Include="..\Feature\B\B.csproj" />
目前还不清楚是什么触发了这种情况,但我猜这可能与NuGet有关

是否有任何方法可以阻止VS执行类似于对自定义MSBuild场景使用DisableFastUpdateCheck的操作

目前还不清楚是什么触发了这种情况,但我猜这可能与NuGet有关

它应该与ItemGroup中的项目相关。我以前也遇到过类似的问题,但区别在于我使用通配符来包含.cs文件和您的are.csproj文件,如下所示:

<ItemGroup>
    <Compile Include="**\*.cs" />
</ItemGroup>
或者,如果要删除某个项目并保留通配符模式,只需卸载根项目,然后删除引用项目,重新加载根项目,通配符模式就会保留


希望这能有所帮助。

我对此做了进一步的研究

对于测试,您可以通过重命名包含在通配符模式中的任何项目来复制扩展

此外,防止膨胀的最简单方法是:

将项目引用全局文件移动到Directory.Build.props或其他外部文件中 在csproj中将DisableFastUpdateCheck设置为true
使用属性不起作用,也不是必需的,使用排除也一样。

嘿,谢谢你看我的问题。我不确定排除是否有帮助,因为我的通配符已被>50个ProjectReference元素替换。但我理解您现在关于添加/删除项目的意思。很高兴知道!
  <ItemGroup>
    <ProjectReference Include="..\Feature\*\*.csproj" Exclude="..\Feature\C\C.csproj" />
  </ItemGroup>