Wybrana odpowiedź sugeruje, że byłoby możliwe użycie rzeczywistych projektów zamiast folderów rozwiązań, ale tak naprawdę nie wyjaśnia, jak to zrobić. Myślę, że to, co tu opisuję, jest prawdopodobnie najmniej niezręcznym sposobem osiągnięcia tego ... :-P
Problem ze zwykłymi plikami projektów polega na tym, że ostatecznie zostaną skompilowane przez MSBUILD
. A jeśli chcesz mieć projekt, który zawiera tylko niekompilowalne pliki, będzie to problem.
Ale jakiś czas temu Visual Studio wprowadziło nowy typ projektu: Projekt współdzielony (rozszerzenie .shproj). Ten typ projektu nie jest domyślnie kompilowany, ale tylko wtedy, gdy (i tylko wtedy) odwołuje się do niego inny projekt.
Tak więc jedną częścią tej sztuczki jest użycie współdzielonych projektów zamiast folderów rozwiązań . Oczywiście możliwe jest dodanie projektu współdzielonego, do którego nie odwołuje się żaden inny projekt, co oznacza, że możemy uniknąć problemu przedstawionego powyżej.
Następnie, używając <None Include="**/*" />
klauzuli w pliku .shproj, możemy automatycznie odzwierciedlić nowe pliki i / lub podfoldery.
Zasadniczo zrób to:
- Utwórz nowy folder w swoim rozwiązaniu.
- Dodaj nowy plik .shproj w katalogu głównym tego nowego folderu.
- Odwołaj się do nowego pliku .shproj w swoim rozwiązaniu.
Na przykład w moim przypadku utworzyłem DockerDev.shproj, więc mogę pogrupować niektóre skrypty związane z dockerem, które uruchamiamy tylko na naszych maszynach programistycznych:
<?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>
Ten plik .shproj będzie śledzić każdy plik w dowolnym podfolderze tego nowego DockerDev
folderu w moim rozwiązaniu.
O ile mogłem zobaczyć, to rozwiązanie działa prawie tak, jak żądał OP: będzie działać jako niekompilowalne odniesienie do folderu i automatycznie odzwierciedli wszelkie wprowadzone w nim zmiany.