.vcxproj
dosyalar ve joker karakterler
Visual Studio IDE, dosyalardaki proje öğelerindeki .vcxproj
belirli yapıları desteklemez. Bu desteklenmeyen yapılar joker karakterler, noktalı virgülle ayrılmış listeler veya birden çok dosyaya genişletilen MSBuild makrolarıdır. .vcxproj
C++ derlemeleri için proje sistemi MSBuild'den daha kısıtlayıcıdır. Her proje öğesinin kendi MSBuild öğesine sahip olması gerekir. Dosya biçimi hakkında .vcxproj
daha fazla bilgi için bkz .vcxproj
. ve .props
dosya yapısı.
Bu yapı örnekleri IDE tarafından desteklenmez:
<ItemGroup>
<None Include="*.txt">
<ClCompile Include="a.cpp;b.cpp"/>
<ClCompile Include="@(SomeItems)" />
</ItemGroup>
Bu yapıları içeren bir .vcxproj
proje dosyası IDE'ye yüklenirse, proje ilk başta çalışıyor gibi görünebilir. Ancak, proje Visual Studio tarafından değiştirilip diske kaydedilir kaydedilmez büyük olasılıkla sorunlar vardır. Rastgele kilitlenmeler ve tanımsız davranışlarla karşılaşabilirsiniz.
Visual Studio 2019 sürüm 16.7'de, Visual Studio bir .vcxproj
proje dosyasını yüklediğinde, proje öğelerindeki desteklenmeyen girdileri otomatik olarak algılar. Çözüm yüklemesi sırasında Çıkış penceresinde uyarılar görürsünüz.
Visual Studio 2019 sürüm 16.7 ayrıca salt okunur proje desteği de ekler. Salt okunur destek, IDE'nin IDE tarafından düzenlenebilir projelerin ek sınırlamalarına sahip olmayan el ile yazılmış projeleri kullanmasına olanak tanır.
Desteklenmeyen yapılardan birini veya daha fazlasını kullanan bir .vcxproj
dosyanız varsa, şu seçeneklerden birini kullanarak IDE'de uyarı olmadan yüklenmesini sağlayabilirsiniz:
- Tüm öğeleri açıkça listele
- Projenizi salt okunur olarak işaretleme
- Joker karakter öğelerini hedef gövdeye taşıma
Tüm öğeleri açıkça listele
Şu anda, joker karakter genişletme öğelerini salt okunur olmayan bir projede Çözüm Gezgini penceresinde görünür hale getirmenin bir yolu yoktur. Çözüm Gezgini projelerin tüm öğeleri açıkça listelemesini bekler.
Visual Studio 2019 sürüm 16.7 veya sonraki sürümlerinde projelerin joker karakterleri otomatik olarak genişletmesini ReplaceWildcardsInProjectItems
sağlamak .vcxproj
için özelliğini olarak true
ayarlayın. Kök dizinde bir Directory.Build.props
dosya oluşturmanızı ve şu içeriği kullanmanızı öneririz:
<Project>
<PropertyGroup>
<ReplaceWildcardsInProjectItems>true</ReplaceWildcardsInProjectItems>
</PropertyGroup>
</Project>
Projenizi salt okunur olarak işaretleme
Visual Studio 2019 sürüm 16.7 ve sonraki sürümlerinde projeleri salt okunur olarak işaretleyebilirsiniz. Projenizi salt okunur olarak işaretlemek için dosyanıza .vcxproj
veya içeri aktarmış olduğu dosyalardan herhangi birine aşağıdaki özelliği ekleyin:
<PropertyGroup>
<ReadOnlyProject>true</ReadOnlyProject>
</PropertyGroup>
Bu <ReadOnlyProject>
ayar Visual Studio'un projeyi düzenlemesini ve kaydetmesini engeller, böylece joker karakterler de dahil olmak üzere içindeki tüm MSBuild yapılarını kullanabilirsiniz.
Visual Studio dosyadaki proje öğelerinde .vcxproj
joker karakterler algılarsa veya içeri aktarma işlemlerinden herhangi birinde proje önbelleğinin kullanılamadığını bilmeniz önemlidir. Joker karakter kullanan çok sayıda projeniz varsa IDE'deki çözüm yükleme süreleri çok daha uzun olur.
Joker karakter öğelerini hedef gövdeye taşıma
Kaynakları toplamak, oluşturulan kaynakları eklemek vb. için joker karakterler kullanmak isteyebilirsiniz. Çözüm Gezgini penceresinde listelenmelerine ihtiyacınız yoksa, bunun yerine şu yordamı kullanabilirsiniz:
Joker karakter eklemek için öğe grubunun adını değiştirin. Örneğin, yerine:
<Image Include="*.bmp" /> <ClCompile Include="*.cpp" />
şu şekilde değiştirin:
<_WildCardImage Include="*.bmp" /> <_WildCardClCompile Include="*.cpp" />
Bu içeriği dosyanıza
.vcxproj
ekleyin. İsterseniz, buDirectory.Build.targets
kök dizinin altındaki tüm projeleri etkilemek için bunu kök dizindeki bir dosyaya da ekleyebilirsiniz:<Target Name="AddWildCardItems" AfterTargets="BuildGenerateSources"> <ItemGroup> <Image Include="@(_WildCardImage)" /> <ClCompile Include="@(_WildCardClCompile)" /> </ItemGroup> </Target>
Bu değişiklik, derlemenin dosyada
.vcxproj
tanımlandığı şekilde öğeleri görmesini sağlar. Ancak, artık Çözüm Gezgini penceresinde görünmezler ve IDE'de sorunlara neden olmazlar.Düzenleyicide bu dosyaları açtığınızda öğeler için doğru IntelliSense'i göstermek için
_WildCardClCompile
aşağıdaki içeriği ekleyin:<PropertyGroup> <ComputeCompileInputsTargets> AddWildCardItems $(ComputeCompileInputsTargets) </ComputeCompileInputsTargets> </PropertyGroup>
Etkili bir şekilde, hedef gövde içindeki öğeler için joker karakterler kullanabilirsiniz. Joker karakterleri, tarafından ItemGroup
proje öğesi olarak tanımlanmayan bir ProjectSchemaDefinition
içinde de kullanabilirsiniz.
Dekont
Joker karakter eklemelerini bir .vcxproj
dosyadan içeri aktarılan bir dosyaya taşırsanız, bunlar Çözüm Gezgini penceresinde görünmez. Bu değişiklik, projenizin değişiklik yapmadan IDE'ye yüklenmesini de sağlar. Ancak, proje önbelleğini devre dışı bırakacağından bu yaklaşımı önermiyoruz.
Ayrıca bkz.
Visual Studio’da C++ derleyicisi ve derleme özelliklerini ayarlama
Özellik Sayfası XML Dosyaları
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin