C++ derlemelerini özelleştirme
Ortak bir üst klasör altındaki tüm C++ projelerini özelleştirmek için Directory.Build.props ve Directory.Build.targets kullanabilirsiniz. Bkz . Klasöre göre özelleştirme. Ayrıca, C++ projeleri aşağıdaki genişletilebilirlik noktalarını sağlar. Microsoft.Cpp.* dosyaları öncesinde veya .targets
sonrasında otomatik olarak içeri aktarılacak veya dosyaları belirtmek .props
için özellikleri kullanabilirsiniz:
- ForceImportAfterCppDefaultProps
- ForceImportBeforeCppProps
- ForceImportAfterCppProps
- ForceImportBeforeCppTargets
- ForceImportAfterCppTargets
Bu içeri aktarmalar, diğer özelliklere veya diğer hedeflere bağlı hedeflere bağlı olan özelliklerin tanımlarının sırası üzerinde denetim sağlar. içindeki içeri aktarmaların .vcxproj
sırası şöyle görünür:
vcxproj
Microsoft.Cpp.default.props
Microsoft.Common.props
Directory.Build.props
Microsoft.Cpp.props
Microsoft.Cpp.targets
Targets
Directory.Build.targets
Bkz. .vcxproj ve .props dosya yapısı. Microsoft.Cpp.default.props veya Microsoft.Cpp.props içinde tanımlanan diğer özellikleri kullanan özellikleri tanımlamanız gerekiyorsa, başka bir .props
dosya (örneğin, MyProps.props) oluşturabilir ve özelliği Directory.Build.props
buna işaret ederek tanımlayabilirsinizForceImportAfterCppProps
:
<PropertyGroup>
<ForceImportAfterCppProps>$(MSBuildThisFileDirectory)\MyProps.props</ForceImportAfterCppProps>
</PropertyGroup>
MyProps.props, Microsoft.Cpp.props dosyasının en sonunda otomatik olarak içeri aktarılır.
Tüm C++ derlemelerini özelleştirme
Bu tür özelleştirmeleri izlemek kolay olmadığından Visual Studio yüklemesini özelleştirmek önerilmez, ancak Visual Studio'yu belirli bir platform için C++ derlemelerini özelleştirmek üzere genişletiyorsanız, her platform için dosya oluşturabilir .targets
ve visual studio uzantısının bir parçası olarak bu platformlar için uygun içeri aktarma klasörlerine yerleştirebilirsiniz.
.targets
Win32 platformu microsoft.Cpp.Win32.targets dosyası aşağıdaki Import
öğeyi içerir:
<Import Project="$(VCTargetsPath)\Platforms\Win32\ImportBefore\*.targets"
Condition="Exists('$(VCTargetsPath)\Platforms\Win32\ImportBefore')"
/>
Aynı dosyanın sonuna yakın benzer bir öğe vardır:
<Import Project="$(VCTargetsPath)\Platforms\Win32\ImportAfter\*.targets"
Condition="Exists('$(VCTargetsPath)\Platforms\Win32\ImportAfter')"
/>
*%ProgramFiles32%\MSBuild\Microsoft.Cpp\v{version}\Platforms* içindeki diğer hedef platformlar için de benzer içeri aktarma öğeleri var.
Dosyayı platforma .targets
göre uygun ImportAfter
klasöre yerleştirdikten sonra, MSBuild dosyanızı bu platform için her C++ derlemesine aktarır. Gerekirse oraya birden çok .targets
dosya yerleştirebilirsiniz.
Visual Studio Genişletilebilirliği'ni kullanarak yeni bir platform tanımlama gibi daha fazla özelleştirme yapılabilir. Daha fazla bilgi için bkz . C++ proje genişletilebilirliği.
Komut satırında özel içeri aktarma belirtme
C++ projesinin belirli bir derlemesine eklemek istediğiniz özel .targets
için, özelliklerden ForceImportBeforeCppTargets
birini veya her ikisini de ForceImportAfterCppTargets
komut satırına ayarlayın.
msbuild /p:ForceImportBeforeCppTargets="C:\build\config\Custom.Before.Microsoft.Cpp.Targets" MyCppProject.vcxproj
Genel bir ayar için (örneğin, derleme sunucusundaki bir platform için tüm C++ derlemelerini etkilemek için) iki yöntem vardır. İlk olarak, her zaman ayarlanmış bir sistem ortam değişkeni kullanarak bu özellikleri ayarlayabilirsiniz. MSBuild ortamı her zaman okuduğundan ve tüm ortam değişkenleri için özellikler oluşturduğundan (veya geçersiz kıldığından) bu teknik çalışır.
İlgili içerik
- Derlemenizi özelleştirin.