MSBuild komutları ve özellikleri için yaygın makrolar

Yükleme seçeneklerinize bağlı olarak, Visual Studio MSBuild tabanlı .vcxproj bir Visual Studio projesinde yüzlerce makronun kullanımınıza sunulmasını sağlayabilir. Makrolar, varsayılan olarak veya dosyalarda ya da .props.targets proje ayarlarınızda ayarlanan MSBuild özelliklerine karşılık gelir. Bu makroları, dizelerin kabul edildiği projenin Özellik Sayfaları iletişim kutusunda herhangi bir yerde kullanabilirsiniz. Bu makrolar büyük/küçük harfe duyarlı değildir.

Geçerli özellikleri ve makroları görüntüleme

Şu anda kullanılabilir olan tüm makroları görüntülemek için Proje Özellikleri'ni seçerek ana menüden proje>özellik sayfalarını açın. Özellik Sayfaları iletişim kutusunda, içinde makro bulunan bir girdi seçin. Makroyu dolar işaretine ve adını çevreleyen paranteze göre tanıyabilirsiniz.

Örneğin, sol bölmede Yapılandırma Özellikleri>VC++ Dizinleri'ni seçin ve ardından sağ bölmede Dizinleri ekle'yi seçin. Dizinleri dahil et değeridir$(VC_IncludePath);$(WindowsSDK_IncludePath);.

Bu iki değeri çevreleyen dolar işareti ve parantez makro olduklarını gösterir. Bu iki makronun genişletilmesi, aranacak ekleme dizinlerini ayarlar.

Dizinleri Ekle'yi seçtiğinizde satırın sonunda bir açılan menü görüntülenir. Açılan menü düğmesini ve ardından Düzenle'yi seçin. Görüntülenen Dizinleri Ekle iletişim kutusunda Makrolar>> düğmesini seçin.

Bu, iletişim kutusunu genişleterek Visual Studio'da görünür olan geçerli özellik ve makro kümesini ve her birinin geçerli değerini gösterir. Daha fazla bilgi için C++ proje özellik sayfası başvurusunun Kullanıcı Tanımlı Değerleri Belirtme bölümüne bakın.

Screenshot of the Visual Studio Include Directories dialog after choosing the Macros button.

Sağ tarafta $(AllowLocalNetworkLoopback) gibi Visual Studio makrolarının listesi yer almaktadır. Sol bölmede include dizin özelliğinin değerlendirilen değeri gösterilir. Alt bölmede, include dizin özelliği değerini oluşturmak için hangi makroların genişletildiği (varsa) gösterilir. Dizinleri Ekle makrosunun $(VC_IncludePath) ve $(WindowsSDK_IncludePath) adlı diğer iki makronun birleşimi olduğundan, devralınan değerler etiketli alt bölmede bu iki makro listelenir.

Ortak makroların listesi

Bu tabloda, kullanılabilir makroların yaygın olarak kullanılan bir alt kümesi açıklanır; burada listelenmeyen çok daha fazlası var. Projenizdeki tüm özellikleri ve bunların geçerli değerlerini görmek için Makrolar iletişim kutusuna gidin. MSBuild özellik tanımlarının , ve dosyalarında .propsmakro olarak nasıl oluşturulduğu ve .vcxproj kullanıldığıyla ilgili ayrıntılar için bkz. MSBuild Özellikleri. .targets

Makro Açıklama
$(Configuration) Geçerli proje yapılandırmasının adı, örneğin, "Hata Ayıkla".
$(DevEnvDir) Visual Studio'nun yükleme dizini (sürücü + yol olarak tanımlanır); sondaki ters eğik çizgiyi (\) içerir.
$(FrameworkDir) .NET Framework'ün yüklendiği dizin.
$(FrameworkSDKDir) .NET Framework'ü yüklediğiniz dizin. .NET Framework, Visual Studio'nun bir parçası olarak veya ayrı olarak yüklenmiş olabilir.
$(FrameworkVersion) Visual Studio tarafından kullanılan .NET Framework sürümü. ile birlikte $(FrameworkDir), Visual Studio tarafından kullanılan .NET Framework sürümünün tam yolu.
$(FxCopDir) Dosyanın yolu fxcop.cmd . Dosya fxcop.cmd tüm Visual Studio sürümlerinde yüklü değildir.
$(IntDir) Ara dosyalar için belirtilen dizinin yolu. Göreli bir yolsa, ara dosyalar proje dizinine eklenen bu yola gider. Bu yolun sonunda ters eğik çizgi (\) olmalıdır. Ara Dizin özelliğinin değerine çözümler. Bu özelliği tanımlamak için kullanmayın $(OutDir) .
$(OutDir) Çıkış dosyası dizininin yolu. Göreli bir yolsa, çıkış dosyaları proje dizinine eklenen bu yola gider. Bu yolun sonunda ters eğik çizgi (\) olmalıdır. Çıkış Dizini özelliğinin değerine çözümler. Bu özelliği tanımlamak için kullanmayın $(IntDir) .
$(Platform) Geçerli proje platformunun adı, örneğin, "Win32".
$(PlatformShortName) Geçerli mimarinin kısa adı( örneğin, "x86" veya "x64").
$(ProjectDir) Projenin dizini (sürücü + yol olarak tanımlanır); sondaki ters eğik çizgiyi (\) içerir.
$(ProjectExt) Projenin dosya uzantısı. Dosya uzantısından önce '.' öğesini içerir.
$(ProjectFileName) Projenin dosya adı (temel ad + dosya uzantısı olarak tanımlanır).
$(ProjectName) Projenin temel adı.
$(ProjectPath) Projenin mutlak yol adı (sürücü + yol + temel ad + dosya uzantısı olarak tanımlanır).
$(PublishDir) Yayımlama hedefinin çıkış konumu; sondaki ters eğik çizgiyi (\) içerir. Varsayılan olarak klasörü kullanır $(OutDir)app.publish\ .
$(RemoteMachine) Hata ayıklama özelliği sayfasındaki Uzak Makine özelliğinin değerine ayarlayın. Daha fazla bilgi için bkz. C/C++ Hata Ayıklama Yapılandırması için Proje Ayarlar Değiştirme.
$(RootNameSpace) Varsa, uygulamayı içeren ad alanı.
$(SolutionDir) Çözümün dizini (sürücü + yol olarak tanımlanır); sondaki ters eğik çizgiyi (\) içerir. Yalnızca IDE'de bir çözüm oluştururken tanımlanır.
$(SolutionExt) Çözümün dosya uzantısı. Dosya uzantısından önce '.' öğesini içerir. Yalnızca IDE'de bir çözüm oluştururken tanımlanır.
$(SolutionFileName) Çözümün dosya adı (temel ad + dosya uzantısı olarak tanımlanır). Yalnızca IDE'de bir çözüm oluştururken tanımlanır.
$(SolutionName) Çözümün temel adı. Yalnızca IDE'de bir çözüm oluştururken tanımlanır.
$(SolutionPath) Çözümün mutlak yol adı (sürücü + yol + temel ad + dosya uzantısı olarak tanımlanır). Yalnızca IDE'de bir çözüm oluştururken tanımlanır.
$(TargetDir) Derleme için birincil çıkış dosyasının dizini (sürücü + yol olarak tanımlanır); sondaki ters eğik çizgiyi (\) içerir.
$(TargetExt) Derleme için birincil çıkış dosyasının dosya uzantısı. Dosya uzantısından önce '.' öğesini içerir.
$(TargetFileName) Derleme için birincil çıkış dosyasının dosya adı (temel ad + dosya uzantısı olarak tanımlanır).
$(TargetName) Derleme için birincil çıkış dosyasının temel adı.
$(TargetPath) Derleme için birincil çıkış dosyasının mutlak yol adı (sürücü + yol + temel ad + dosya uzantısı olarak tanımlanır).
$(VCInstallDir) Visual Studio yüklemenizin C++ içeriğini içeren dizin. Bu özellik, hedeflenen Microsoft C++ (MSVC) araç takımının sürümünü içerir. Bu sürüm, konak Visual Studio'dan farklı olabilir. Örneğin, ile $(PlatformToolset) = v140$(VCInstallDir) oluştururken Visual Studio 2015 yüklemesinin yolunu içerir.
$(VSInstallDir) Visual Studio'yu yüklediğiniz dizin. Bu özellik, hedeflenen Visual Studio araç takımının sürümünü içerir ve bu sürüm Visual Studio'yu barındırandan farklı olabilir. Örneğin, ile $(PlatformToolset) = v110$(VSInstallDir) oluştururken Visual Studio 2012 yüklemesinin yolunu içerir.
$(WebDeployPath) Web dağıtım kökünden projenin çıkışlarının ait olduğu yere göreli yol.
$(WebDeployRoot) konumunun <localhost>mutlak yolu. Örneğin, c:\inetpub\wwwroot.

Eski makrolar

C++ için derleme sistemi Visual Studio 2008 ile Visual Studio 2010 arasında önemli ölçüde değiştirildi. Önceki proje türlerinde kullanılan birçok makro yenilerine değiştirildi. Bu makrolar artık kullanılmaz veya bir veya daha fazla eşdeğer özellik veya öğe meta veri makro (%(item-name)) değeriyle değiştirilir. Geçiş aracı , "geçirilen" olarak işaretlenen makroları güncelleştirebilir. Makroyu içeren bir proje Visual Studio 2008 veya önceki sürümlerinden Visual Studio 2010'a geçirilirse, Visual Studio makroyu eşdeğer geçerli makroya dönüştürür. Visual Studio'nun sonraki sürümleri, Visual Studio 2008 ve önceki sürümlerindeki projeleri yeni proje türüne dönüştüremez. Bu projeleri iki adımda dönüştürmeniz gerekir; önce bunları Visual Studio 2010'a dönüştürün ve ardından sonucu daha yeni Visual Studio sürümünüze dönüştürün. Daha fazla bilgi için bkz . Olası yükseltme sorunlarına genel bakış.

Makro Açıklama
$(InputDir) (Geçirildi.) Giriş dosyasının dizini (sürücü + yol olarak tanımlanır); sondaki ters eğik çizgiyi (\) içerir. Giriş projeyse, bu makro ile $(ProjectDir)eşdeğerdir.
$(InputExt) (Geçirildi.) Giriş dosyasının dosya uzantısı. Dosya uzantısından önce '.' öğesini içerir. Giriş projeyse, bu makro ile $(ProjectExt)eşdeğerdir. Kaynak dosyalar için, ile eşdeğerdir %(Extension).
$(InputFileName) (Geçirildi.) Giriş dosyasının dosya adı (temel ad + dosya uzantısı olarak tanımlanır). Giriş projeyse, bu makro ile $(ProjectFileName)eşdeğerdir. Kaynak dosyalar için, ile eşdeğerdir %(Identity).
$(InputName) (Geçirildi.) Giriş dosyasının temel adı. Giriş projeyse, bu makro ile $(ProjectName)eşdeğerdir. Kaynak dosyalar için, ile eşdeğerdir %(Filename).
$(InputPath) (Geçirildi.) Giriş dosyasının mutlak yol adı (sürücü + yol + temel ad + dosya uzantısı olarak tanımlanır). Giriş projeyse, bu makro ile $(ProjectPath)eşdeğerdir. Kaynak dosyalar için, ile eşdeğerdir %(FullPath).
$(ParentName) Bu proje öğesini içeren öğenin adı. Bu makro üst klasör adı veya proje adıdır.
$(SafeInputName) Dosyanın geçerli bir sınıf adı olarak adı, eksi dosya uzantısı. Bu özelliğin tam eşdeğeri yok.
$(SafeParentName) Geçerli ad biçimindeki anlık üst öğe adı. Örneğin, form bir dosyanın üst öğesidir .resx . Bu özelliğin tam eşdeğeri yok.
$(SafeRootNamespace) Proje sihirbazlarının kod eklemesi gereken ad alanı adı. Bu ad alanı adı yalnızca geçerli bir C++ tanımlayıcısında izin verilen karakterleri içerir. Bu özelliğin tam eşdeğeri yok.

Ayrıca bkz.

Visual Studio Projeleri - C++
Visual C++ taşıma ve yükseltme kılavuzu
Olası yükseltme sorunlarına genel bakış
MSBuild iyi bilinen öğe meta verileri