Sdílet prostřednictvím


Přizpůsobení místního sestavení

Když pracujete v týmu, který používal úložiště kódu, jako je GitHub, správa zdrojového kódu nebo jakýkoli sdílený základ kódu, ale chcete si přizpůsobit buildy na místním počítači, třeba dočasně reprodukovat chybu nebo otestovat jinou konfiguraci, může být vhodné zachovat tato přizpůsobení odděleně od sdílených souborů projektu, které jsou sdílené s úložištěm sdíleného kódu. Tento článek popisuje některá rozšíření sestavení dostupná v nástroji MSBuild, která umožňují provádět vlastní konfigurace specifické pro uživatele nebo pouze místní nastavení.

Soubor .user

Použití $(MSBuildProjectFullPath).user, také označované jako .user soubor v tomto kontextu, je také možnost. Tento soubor je určený k zachování přípon, možností nebo proměnných specifických pro váš místní počítač. Není určena k nahrání do správy zdrojového kódu a je automaticky kontrolována .gitignore. U rozsáhlejších změn preferujte změnu samotného projektu, aby budoucí správci nemuseli o tomto mechanismu rozšíření vědět.

U podporovaných vícestranných projektů .user se soubor automaticky naimportuje do vnitřních sestavení a vnějších sestavení, takže můžete soubor jednoduše vytvořit v rámci řešení. Pokud pracujete na jiném typu sestavení, můžete soubor přesto použít .user . Můžete ho vytvořit v rámci svého řešení a pak ho importovat do souboru projektu.

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

MSBuildExtensionsPath a MSBuildUserExtensionsPath

Podle konvence importuje mnoho základních souborů logiky sestavení.

$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\{TargetFileName}\ImportBefore\*.targets

před jejich obsahem a

$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\{TargetFileName}\ImportAfter\*.targets

Potom. Tato konvence umožňuje nainstalovaným sadem SDK rozšířit logiku sestavení běžných typů projektů.

Ve stejné adresářové struktuře se prohledává $(MSBuildUserExtensionsPath)složka %LOCALAPPDATA%\Microsoft\MSBuild. Soubory umístěné v této složce se naimportují pro všechna sestavení odpovídajícího typu projektu spuštěného pod přihlašovacími údaji daného uživatele. Uživatelská rozšíření můžete zakázat nastavením vlastností pojmenovaných po importu souboru v vzoru ImportUserLocationsByWildcardBefore{ImportingFileNameWithNoDots}. Například nastavení ImportUserLocationsByWildcardBeforeMicrosoftCommonProps , které false by zabránilo importu $(MSBuildUserExtensionsPath)\$(MSBuildToolsVersion)\Imports\Microsoft.Common.props\ImportBefore\*.

Vlastní konfigurace založená na jazyce projektu

Pokud potřebujete jiné chování v závislosti na jazyce .NET (C#, Visual Basic nebo F#), můžete přidat skupiny vlastností s podmínkami, které závisí na příponě $(MSBuildProjectExtension) souboru projektu, a definovat vlastnosti specifické pro jazyk a jejich hodnoty.

<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>