Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het systeemeigen Visual Studio-project is gebaseerd op MSBuild. MSBuild definieert bestandsindelingen en regels voor het bouwen van projecten van elk soort. Het beheert de meeste complexiteit van het bouwen voor meerdere configuraties en platforms. Het is handig om te begrijpen hoe het werkt. Dit is vooral belangrijk als u aangepaste configuraties wilt definiëren. Of als u herbruikbare sets eigenschappen wilt maken die u in meerdere projecten kunt delen en importeren.
Het .vcxproj-bestand, .props-bestanden en .target-bestanden
Projecteigenschappen worden opgeslagen in verschillende bestanden. Sommige worden rechtstreeks opgeslagen in het .vcxproj projectbestand. Andere zijn afkomstig van andere .targets bestanden of .props bestanden die het projectbestand importeert en die standaardwaarden leveren. U vindt de Visual Studio 2015-projectbestanden in een landinstellingsspecifieke map onder de basismap. %ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\v140
Projecteigenschappen worden opgeslagen in verschillende bestanden. Sommige worden rechtstreeks opgeslagen in het .vcxproj projectbestand. Andere zijn afkomstig van andere .targets bestanden of .props bestanden die het projectbestand importeert en die standaardwaarden leveren. U vindt de projectbestanden van Visual Studio 2017 in een landinstellingsspecifieke map onder de basismap. %VSINSTALLDIR%Common7\IDE\VC\VCTargets\
Projecteigenschappen worden opgeslagen in verschillende bestanden. Sommige worden rechtstreeks opgeslagen in het .vcxproj projectbestand. Andere zijn afkomstig van andere .targets bestanden of .props bestanden die het projectbestand importeert en die standaardwaarden leveren. U vindt de Visual Studio-projectbestanden in een landinstellingsspecifieke map onder de basismap. %VSINSTALLDIR%\MSBuild\Microsoft\VC\<version> Dit <version> is specifiek voor de versie van Visual Studio. Het is v160 voor Visual Studio 2019.
Eigenschappen worden ook opgeslagen in aangepaste .props bestanden die u aan uw eigen project kunt toevoegen. We raden u ten zeerste aan deze bestanden niet handmatig te bewerken. Gebruik in plaats daarvan de eigenschappenpagina's in de IDE om alle eigenschappen te wijzigen, met name de eigenschappen die deelnemen aan overname, tenzij u een goed begrip hebt van MSBuild en .vcxproj bestanden.
Zoals eerder weergegeven, kan aan dezelfde eigenschap voor dezelfde configuratie een andere waarde in deze verschillende bestanden worden toegewezen. Wanneer u een project bouwt, evalueert de MSBuild-engine het projectbestand en alle geïmporteerde bestanden in een goed gedefinieerde volgorde die later wordt beschreven. Wanneer elk bestand wordt geëvalueerd, worden de bestaande waarden overschreven door alle eigenschapswaarden die in dat bestand zijn gedefinieerd. Alle waarden die niet zijn opgegeven, worden overgenomen van bestanden die eerder zijn geëvalueerd. Wanneer u een eigenschap instelt met eigenschappenpagina's, is het ook belangrijk om te letten op de locatie waar u deze instelt. Als u een eigenschap instelt op X in een .props bestand, maar de eigenschap is ingesteld op 'Y' in het projectbestand, wordt het project gebouwd met de eigenschap ingesteld op 'Y'. Als dezelfde eigenschap is ingesteld op 'Z' voor een projectitem, zoals een .cpp bestand, gebruikt de MSBuild-engine de waarde 'Z'.
Dit is de basisovernamestructuur:
Standaardinstellingen uit de MSBuild CPP Toolset (het
Microsoft.Cpp.Default.propsbestand in de basismap, die door het.vcxprojbestand wordt geïmporteerd.)Eigenschappenvensters
.vcxprojbestand (Dit bestand kan de standaard- en eigenschappenvensterinstellingen overschrijven.)Metagegevens van items
Aanbeveling
Op een eigenschappenpagina wordt een eigenschap vetgedrukt gedefinieerd in de huidige context. Een eigenschap in het normale lettertype wordt overgenomen.
Een uitgevouwen projectbestand weergeven met alle geïmporteerde waarden
Soms is het handig om het uitgevouwen bestand weer te geven om te bepalen hoe een bepaalde eigenschapswaarde wordt overgenomen. Als u de uitgebreide versie wilt weergeven, voert u de volgende opdracht in bij een Visual Studio-opdrachtprompt. (Wijzig de namen van tijdelijke aanduidingen in de naam die u wilt gebruiken.)
msbuild /pp:temp.txtmyapp.vcxproj
Uitgebreide projectbestanden kunnen groot en moeilijk te begrijpen zijn, tenzij u bekend bent met MSBuild. Dit is de basisstructuur van een projectbestand:
Fundamentele projecteigenschappen, die niet worden weergegeven in de IDE.
Importeren van
Microsoft.cpp.default.props, waarmee enkele eenvoudige, toolset-onafhankelijke eigenschappen worden gedefinieerd.Algemene configuratie-eigenschappen (weergegeven als platformtoolset en project-standaardeigenschappen op de pagina Configuratie algemeen . Deze eigenschappen bepalen in de volgende stap welke toolset en intrinsieke eigenschappenvensters worden geïmporteerd
Microsoft.cpp.props.Importeren van
Microsoft.cpp.props, waarmee de meeste standaardinstellingen van het project worden ingesteld.Importeer alle eigenschappenvensters, inclusief
.userbestanden. Deze eigenschappenbladen kunnen alles overschrijven, behalve de standaardeigenschappen PlatformToolset en Project .De rest van de eigenschappen van de projectconfiguratie. Deze waarden kunnen overschrijven wat is ingesteld in de eigenschappenvensters.
Items (bestanden) samen met hun metagegevens. Deze items zijn altijd het laatste woord in MSBuild-evaluatieregels, zelfs als ze plaatsvinden vóór andere eigenschappen en import.
Zie MSBuild Properties voor meer informatie.
Configuraties bouwen
Een configuratie is slechts een willekeurige groep eigenschappen die een naam krijgen. Visual Studio biedt foutopsporings- en releaseconfiguraties. Elke set stelt verschillende eigenschappen op de juiste wijze in voor een foutopsporingsbuild of release-build. U kunt Configuration Manager gebruiken om aangepaste configuraties te definiëren. Ze zijn een handige manier om eigenschappen te groeperen voor een specifieke smaak van build.
Als u een beter idee wilt krijgen van buildconfiguraties, opent u Property Manager. U kunt het openen door Eigenschapsbeheer weergeven > of > Andere Windows-eigenschappenbeheer >weer te geven, afhankelijk van uw instellingen.
Property Manager heeft knooppunten voor elk configuratie- en platformpaar in het project. Onder elk van deze knooppunten bevinden zich knooppunten voor eigenschappenvensters (.props bestanden) die bepaalde specifieke eigenschappen voor die configuratie instellen.
U kunt bijvoorbeeld naar het deelvenster Algemeen in de eigenschappenpagina's gaan. Wijzig de eigenschap Tekenset in 'Niet ingesteld' in plaats van Unicode gebruiken en klik vervolgens op OK. In Property Manager wordt nu geen unicode-ondersteuningsvenster weergegeven. Deze wordt verwijderd voor de huidige configuratie, maar deze is nog steeds beschikbaar voor andere configuraties.
Zie Projectinstellingen van Visual Studio C++ delen of opnieuw gebruiken voor meer informatie over Property Manager en eigenschappenvensters.
Aanbeveling
Het .user bestand is een verouderde functie. U wordt aangeraden deze te verwijderen om eigenschappen correct te groeperen op basis van configuratie en platform.