Dela via


Anpassa din lokala version

När du arbetar med delad kod på en kodlagringsplats som GitHub, i källkontrollen eller med en delad kodbas kan du använda MSBuild för att tillfälligt anpassa versioner på den lokala datorn. Du kanske tillfälligt vill återskapa ett fel eller testa en annan konfiguration och hålla anpassningarna åtskilda från filerna på lagringsplatsen för delad kod. Den här artikeln beskriver några byggtillägg som är tillgängliga i MSBuild som gör att du kan skapa användarspecifika eller lokala anpassade byggkonfigurationer.

Förutsättningar

  • Ett Visual Studio-projekt som bygger med MSBuild.

Använda användarfilen

Du kan använda $(MSBuildProjectFullPath).user, även kallad användarfilen i den här kontexten, för att lagra tillägg, alternativ eller variabler som är specifika för den lokala datorn. Användarfilen är inte avsedd att laddas upp till källkontrollen och kontrolleras automatiskt på .gitignore. För mer omfattande ändringar ändrar du själva projektet, så att framtida underhållare inte behöver känna till den här tilläggsmekanismen.

I flermålsprojekt som stöds importeras användarfilen automatiskt i inre versioner och yttre versioner, så att du kan skapa den här filen i lösningen. Om du arbetar med en annan typ av bygge kan du använda användarfilen genom att skapa den i lösningen och sedan importera den i projektfilen på följande sätt:

<Import Project="$(MSBuildProjectFullPath).user" Condition="Exists('$(MSBuildProjectFullPath).user')"/>

Använda MSBuildExtensionsPath och MSBuildUserExtensionsPath

Enligt konventionen importerar många centrala bygglogikfiler $(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\TargetFileName\ImportBefore\*.targets-filen före deras innehåll och $(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\TargetFileName\ImportAfter\*.targets-filen efteråt. Med den här konventionen kan installerade SDK:er utöka bygglogik för vanliga projekttyper.

Samma katalogstruktur söks i $(MSBuildUserExtensionsPath), vilket är mappen per användare %LOCALAPPDATA%\Microsoft\MSBuild. Filer som placeras i mappen importeras för alla versioner av motsvarande projekttyp som körs under användarens autentiseringsuppgifter.

Du kan inaktivera användartilläggen genom att ange egenskaper med namnet efter importfilen i mönstret ImportUserLocationsByWildcardBefore\<ImportingFileNameWithNoDots>. Att ställa in ImportUserLocationsByWildcardBeforeMicrosoftCommonPropsfalse förhindrar import av $(MSBuildUserExtensionsPath\$(MSBuildToolsVersion)\Imports\Microsoft.Common.props\ImportBefore\*.

Skapa anpassade villkor baserat på projektspråk

Om du behöver olika beteenden beroende på .NET-språket: C#, Visual Basic eller F#, kan du lägga till egenskapsgrupper med villkor som är beroende av projektfiltillägget i <MSBuildProjectExtension> för att definiera språkspecifika egenskaper och deras värden.

<PropertyGroup Condition="'$(MSBuildProjectExtension)' == '.vbproj'">
   <!-- Put VB-only property definitions here -->
</PropertyGroup>
<PropertyGroup Condition="'$(MSBuildProjectExtension)' == '.fsproj'">
   <!-- Put F#-only property definitions here -->
</PropertyGroup>
<PropertyGroup Condition="'$(MSBuildProjectExtension)' == '.csproj'">
   <!-- Put C#-only property definitions here -->
</PropertyGroup>