Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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).user
také 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>