La respuesta elegida sugiere que sería posible utilizar proyectos reales en lugar de carpetas de soluciones, pero no explica realmente cómo. Supongo que lo que estoy describiendo aquí es posiblemente la forma menos incómoda de lograr eso ... :-P
El problema con los archivos de proyecto normales es que eventualmente serán compilados por MSBUILD. Y si desea tener un proyecto que solo contenga archivos no compilables, será un problema.
Pero hace algún tiempo Visual Studio introdujo un nuevo tipo de proyecto: Proyecto compartido (extensión .shproj). Este tipo de proyecto no se compila de forma predeterminada, sino solo cuando (y solo si) otro proyecto hace referencia a él.
Entonces, una parte del truco aquí es usar proyectos compartidos en lugar de carpetas de soluciones . Obviamente, es posible agregar un proyecto compartido al que nunca se hace referencia en ningún otro proyecto, lo que significa que podemos evitar el problema presentado anteriormente.
Luego, al usar la <None Include="**/*" />cláusula en el archivo .shproj, podemos hacer que refleje automáticamente cualquier archivo y / o subcarpeta nuevos.
Así que básicamente haz esto:
- Cree una nueva carpeta en su solución.
- Agregue un nuevo archivo .shproj en la raíz de esta nueva carpeta.
- Haga referencia al nuevo .shproj en su solución.
Por ejemplo, en mi caso, he creado un DockerDev.shproj, por lo que puedo agrupar algunos scripts relacionados con Docker que ejecutamos solo en nuestras máquinas de desarrollo:
<?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>
Este archivo .shproj realizará un seguimiento de cualquier archivo, en cualquier subcarpeta de esta nueva DockerDevcarpeta en mi solución.
Por lo que pude ver, esta solución funciona de manera muy similar a lo que solicitó el OP: funcionará como una referencia no compilable a una carpeta y reflejará automáticamente cualquier cambio realizado en ella.