Seçilen cevap, çözüm klasörleri yerine gerçek projeleri kullanmanın mümkün olacağını öne sürüyor, ancak nasıl olduğunu gerçekten açıklamıyor. Sanırım burada anlattığım şey muhtemelen bunu başarmanın en az garip yolu ... :-P
Normal proje dosyalarındaki sorun, en sonunda tarafından derlenecek olmalarıdır MSBUILD
. Ve sadece derlenemeyen dosyalar içeren bir projeye sahip olmak istiyorsanız, bu bir sorun olacaktır .
Ancak bir süre önce Visual Studio yeni bir proje türü sunmuştur : Paylaşılan Proje (.shproj uzantısı). Bu proje tipi yok değil varsayılan olarak derlenmiş olsun, ama (sadece eğer) sadece başka bir proje tarafından başvurulmaktadır.
Yani buradaki püf noktalarından biri , çözüm klasörleri yerine paylaşılan projeleri kullanmaktır . Başka bir proje tarafından asla referans verilmeyen paylaşılan bir proje eklemek açıkça mümkündür, bu da yukarıda sunulan sorundan kaçınabileceğimiz anlamına gelir.
Daha sonra, <None Include="**/*" />
.shproj dosyasında cümle kullanarak , yeni dosyaları ve / veya alt klasörleri otomatik olarak yansıtabiliriz.
Yani temelde şunu yapın:
- Çözümünüzde yeni bir klasör oluşturun.
- Bu yeni klasörün köküne yeni bir .shproj dosyası ekleyin.
- Çözümünüzde yeni .shproj dosyasını referans alın.
Örneğin, benim durumumda bir DockerDev.shproj oluşturdum, böylece yalnızca geliştirme makinelerimizde çalıştırdığımız bazı docker ile ilgili betikleri gruplayabilirim:
<?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>
Bu .shproj dosyası, çözümümdeki bu yeni klasörün herhangi bir alt klasöründeki herhangi bir dosyanın kaydını tutacaktır .DockerDev
Görebildiğim kadarıyla, bu çözüm OP'nin talep ettiği gibi çalışıyor: bir klasöre derlenemeyen bir referans olarak çalışacak ve üzerinde yapılan değişiklikleri otomatik olarak yansıtacaktır.