После дальнейшего расследования я думаю, что нашел причину этого поведения и обходного пути.
Обратите также внимание, что поведение, описанное в исходном вопросе, имеет место только для файлов, которые добавляются непосредственно под решением или в папку, которая находится непосредственно под решением.
Причина
Я не уверен, что 100% правильно, но главное в том, как Word (и, возможно, другие приложения MS Office) сохраняют существующий файл:
- Сохранить текущую версию файла во временный файл
- Переименуйте исходный файл, чтобы его можно было использовать позже, если что-то пойдет не так
- Скопируйте временный файлфайл в местоположение исходного файла, используя имя исходного файла
- Удалить исходный файл (который был переименован в шаге 2)
Visual Studio обнаруживает, что файл не 't существует (хотя и очень короткое время) и удаляет его из своего дерева и файла .sln.Это также можно воспроизвести, добавив файл любого типа вручную, извлекая его (если он не был извлечен), переименовывая его в другое имя, а затем обратно в исходное имя => файл больше не отображается в Visual Studio.
Обходной путь
Я создал пустой шаблон проекта, следуя инструкциям на сайте Microsoft .Я также установил вывод в «Библиотеку классов», чтобы проект компилировался, даже если не существует статического метода main.Этот шаблон можно использовать для добавления проекта «Документация» в существующее решение.В рамках этого проекта вы можете добавлять файлы и редактировать их по своему усмотрению, поскольку Visual Studio ведет себя по-разному и не удаляет файл, когда он сохраняется в этом созвездии.
Очевидно, что этот подход все еще не очень удовлетворительный или элегантный,но я надеюсь, что это может быть полезно для других, кто может столкнуться с той же проблемой.
G.