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>