Sdílet prostřednictvím


Přizpůsobte místní sestavení

Když pracujete se sdíleným kódem v úložišti kódu, jako je GitHub, ve správě zdrojového kódu nebo s jakýmkoli sdíleným základem kódu, můžete pomocí nástroje MSBuild dočasně přizpůsobit sestavení na místním počítači. Možná budete chtít dočasně reprodukovat chybu nebo otestovat jinou konfiguraci a zachovat tato přizpůsobení odděleně od souborů v úložišti 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 konfigurace vlastního sestavení specifického pro uživatele nebo jen pro místní prostředí.

Požadavky

  • Projekt sady Visual Studio, který se sestavuje pomocí nástroje MSBuild.

Použijte uživatelský soubor

K ukládání rozšíření, možností nebo proměnných specifických pro místní počítač můžete použít $(MSBuildProjectFullPath).usertaké uživatelský soubor v tomto kontextu. Uživatelský soubor není určen k nahrání do správy zdrojového kódu a je automaticky kontrolován .gitignore. V případě rozsáhlejších změn změňte samotný projekt, takže budoucí správci nemusí o tomto mechanismu rozšíření vědět.

U podporovaných vícestranných projektů se uživatelský soubor automaticky naimportuje do vnitřních sestavení a vnějších sestavení, takže tento soubor můžete vytvořit v rámci řešení. Pokud pracujete na jiném typu sestavení, můžete ho použít tak, že ho vytvoříte v rámci řešení a pak ho naimportujete do souboru projektu následujícím způsobem:

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

Použijte MSBuildExtensionsPath a MSBuildUserExtensionsPath

Podle konvence mnoho základních souborů logiky sestavení importuje soubor $(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\TargetFileName\ImportBefore\*.targets před svým obsahem a soubor $(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\TargetFileName\ImportAfter\*.targets potom. Tato konvence umožňuje nainstalovaným sadem SDK rozšířit logiku sestavení běžných typů projektů.

Stejná adresářová struktura je prohledána ve $(MSBuildUserExtensionsPath)složce pro jednotlivé uživatele %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é 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 na false zabrání importu $(MSBuildUserExtensionsPath\$(MSBuildToolsVersion)\Imports\Microsoft.Common.props\ImportBefore\*.

Vytvoření vlastních podmínek na základě jazyka 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>