Не ясно, что это вызывает, но я предполагаю, что это может иметь какое-то отношение к NuGet.
Это должно быть связано с элементами в ItemGroup
. У меня раньше была похожая проблема, но разница в том, что я использую символы подстановки для хранения файлов .cs
, а ваши файлы .csproj
выглядят так:
<ItemGroup>
<Compile Include="**\*.cs" />
</ItemGroup>
Когда я удаляю один из файлов .cs
в <ItemGroup>
, подстановочный знак раскрывается в файле csproj. В вашем случае, если я удалил проект C.csproj из Visual Studio (добавьте его ранее, перезагрузите корневой проект), я получу тот же результат, что и вы.
Для этой проблемы многие другие участники сообщества передают голос пользователя команде Visual Studio: VS IDE должна поддерживать шаблоны файлов в файлах проекта . Теперь это хорошо поддерживается в новой системе проектов, используемой .NET Core
и .NET Standard
в Visual Studio 2017, но они не выполнили работу по его поддержке для существующих типов проектов.
Есть ли способ остановить VS от этого (схоже с использованием DisableFastUpToDateCheck для пользовательских сценариев MSBuild)?
Чтобы решить эту проблему, вы можете использовать опцию Exclude="..."
, чтобы исключить проект, на который вы не хотите ссылаться:
<ItemGroup>
<ProjectReference Include="..\Feature\*\*.csproj" Exclude="..\Feature\C\C.csproj" />
</ItemGroup>
Или, если вы хотите удалить один из проектов и сохранить шаблон подстановки, вам нужно всего лишь выгрузить корневой проект, затем удалить эталонный проект, перезагрузить корневой проект, шаблон подстановки будет сохранен.
Надеюсь, это поможет.