Выбранный ответ предполагает, что можно было бы использовать реальные проекты вместо папок решений, но не объясняет, как это сделать. Думаю, то, что я здесь описываю, возможно, наименее неудобный способ добиться этого ... :-P
Проблема с обычными файлами проекта заключается в том, что они в конечном итоге будут скомпилированы MSBUILD
. И если вы хотите иметь проект, который содержит только некомпилируемые файлы, это будет проблемой.
Но некоторое время назад Visual Studio представила новый тип проекта: Shared Project (расширение .shproj). Этот тип проекта не компилируется по умолчанию, а только тогда (и только если) на него ссылается другой проект.
Таким образом, одна из хитростей заключается в использовании общих проектов вместо папок решений . Очевидно, что можно добавить общий проект, на который никогда не ссылается какой-либо другой проект, что означает, что мы можем избежать проблемы, представленной выше.
Затем, используя <None Include="**/*" />
предложение в файле .shproj, мы можем заставить его автоматически отражать любые новые файлы и / или подпапки.
Итак, в основном сделайте это:
- Создайте новую папку в своем решении.
- Добавьте новый файл .shproj в корень этой новой папки.
- Ссылайтесь на новый .shproj в своем решении.
Например, в моем случае я создал DockerDev.shproj, поэтому я могу сгруппировать некоторые сценарии, связанные с докерами, которые мы запускаем только на наших машинах для разработки:
<?xml version="1.0" encoding="utf-8"?>
<!-- DockerDev/DockerDev.shproj -->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<None Include="**/*" />
</ItemGroup>
</Project>
Этот файл .shproj будет отслеживать любой файл в любой подпапке этой новой DockerDev
папки в моем решении.
Насколько я мог видеть, это решение работает очень похоже на то, что запрашивал OP: оно будет работать как некомпилируемая ссылка на папку и автоматически будет отражать любые внесенные в нее изменения.