La risposta scelta suggerisce che sarebbe possibile utilizzare progetti reali invece di cartelle di soluzioni, ma non spiega realmente come. Immagino che quello che sto descrivendo qui sia forse il modo meno imbarazzante per ottenerlo ... :-P
Il problema con i file di progetto regolari è che alla fine verranno compilati da MSBUILD
. E se vuoi avere un progetto che contiene solo file non compilabili, sarà un problema.
Ma qualche tempo fa Visual Studio ha introdotto un nuovo tipo di progetto: Shared Project (estensione .shproj). Questo tipo di progetto non viene compilato per impostazione predefinita, ma solo quando (e solo se) fa riferimento a un altro progetto.
Quindi una parte del trucco qui è usare progetti condivisi invece di cartelle di soluzioni . È ovviamente possibile aggiungere un progetto condiviso a cui non fa mai riferimento nessun altro progetto, il che significa che possiamo evitare il problema presentato sopra.
Quindi, utilizzando la <None Include="**/*" />
clausola nel file .shproj, possiamo fare in modo che rifletta automaticamente tutti i nuovi file e / o sottocartelle.
Quindi fondamentalmente fai questo:
- Crea una nuova cartella nella tua soluzione.
- Aggiungi un nuovo file .shproj alla radice di questa nuova cartella.
- Fai riferimento al nuovo .shproj nella tua soluzione.
Ad esempio, nel mio caso, ho creato un DockerDev.shproj, quindi posso raggruppare alcuni script relativi a docker che eseguiamo solo nelle nostre macchine di sviluppo:
<?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>
Questo file .shproj terrà traccia di qualsiasi file, in qualsiasi sottocartella di questa nuova DockerDev
cartella nella mia soluzione.
Per quanto ho potuto vedere, questa soluzione funziona più o meno come ciò che l'OP ha richiesto: funzionerà come riferimento non compilabile a una cartella e rifletterà automaticamente tutte le modifiche apportate ad essa.