Yürütme görevi
Belirtilen bağımsız değişkenleri kullanarak belirtilen programı veya komutu çalıştırır.
Parametreler
Aşağıdaki tabloda görevin parametreleri Exec
açıklanmaktadır.
Parametre | Açıklama |
---|---|
Command |
Gerekli String parametresi.Çalıştırılacak komutlar. Bunlar, attrib gibi sistem komutları veya program.exe, runprogram.bat veya setup.msi gibi yürütülebilir bir komut olabilir. Bu parametre birden çok komut satırı içerebilir. Alternatif olarak, bir toplu iş dosyasına birden çok komut ekleyebilir ve bu parametreyi kullanarak çalıştırabilirsiniz. |
ConsoleOutput |
İsteğe bağlı ITaskItem[] çıkış parametresi.Her öğe çıkışı, araç tarafından yayılan standart çıkıştan veya standart hata akışından bir satırdır. Bu yalnızca olarak ayarlandıysa ConsoleToMsBuild yakalanır true . |
ConsoleToMsBuild |
İsteğe bağlı Boolean parametre.ise true , görev aracın standart hatasını ve standart çıkışını yakalar ve bunları çıkış parametresinde ConsoleOutput kullanılabilir hale getirir.Varsayılan: false . |
CustomErrorRegularExpression |
İsteğe bağlı String parametre.Araç çıkışındaki hata çizgilerini saptamak için kullanılan normal ifadeyi belirtir. Bu, alışılmadık şekilde biçimlendirilmiş çıkış üreten araçlar için kullanışlıdır. Belirtilmediği sürece IgnoreStandardErrorWarningFormat , bu normal ifade standart ifadelere ek olarak kullanılır.Varsayılan: null (özel işlem yok). |
CustomWarningRegularExpression |
İsteğe bağlı String parametre.Araç çıkışında uyarı çizgilerini saptamak için kullanılan normal ifadeyi belirtir. Bu, alışılmadık şekilde biçimlendirilmiş çıkış üreten araçlar için kullanışlıdır. Belirtilmediği sürece IgnoreStandardErrorWarningFormat , bu normal ifade standart ifadelere ek olarak kullanılır.Varsayılan: null (özel işlem yok). |
EchoOff |
İsteğe bağlı Boolean parametre.ise true , görev genişletilmiş biçimini Command MSBuild günlüğüne yaymaz.Varsayılan: false . |
ExitCode |
İsteğe bağlı Int32 çıkış salt okunur parametresi.Yürütülen komut tarafından sağlanan çıkış kodunu belirtir, ancak görev herhangi bir hata günlüğe kaydederse, ancak işlem 0 çıkış koduna (başarılı) ExitCode sahipse -1 olarak ayarlanır. |
IgnoreExitCode |
İsteğe bağlı Boolean parametre.ise true , görev yürütülen komut tarafından sağlanan çıkış kodunu yoksayar. Aksi takdirde, yürütülen komut sıfır olmayan bir çıkış kodu döndürürse görev döndürür false .Varsayılan: false . |
IgnoreStandardErrorWarningFormat |
İsteğe bağlı Boolean parametre.ise false , çıktıda standart hata/uyarı biçimiyle eşleşen satırları seçer ve bunları hata/uyarı olarak günlüğe kaydeder. ise true , bu davranışı devre dışı bırakın.Varsayılan: false . |
Outputs |
İsteğe bağlı ITaskItem[] çıkış parametresi.Görevdeki çıkış öğelerini içerir. Görev Exec bunları ayarlamaz. Bunun yerine, projede daha sonra kullanılabilmesi için bunları ayarlamış gibi sağlayabilirsiniz. |
StdErrEncoding |
İsteğe bağlı String çıkış parametresi.Yakalanan görev standart hata akışının kodlamasını belirtir. Varsayılan, geçerli konsol çıkış kodlamasıdır. |
StdOutEncoding |
İsteğe bağlı String çıkış parametresi.Yakalanan görev standart çıkış akışının kodlamasını belirtir. Varsayılan, geçerli konsol çıkış kodlamasıdır. |
UseUtf8Encoding |
İsteğe bağlı String parametre.Yürütülen komutlar için komut satırını işlerken UTF8 kod sayfasının kullanılıp kullanılmayacağını belirtir. Geçerli değerler , Never veya Detect değerleridirAlways . Varsayılan değer olan Detect , UTF8 kod sayfasını yalnızca ANSI olmayan karakterler mevcut olduğunda kullanma anlamına gelir. |
WorkingDirectory |
İsteğe bağlı String parametre.Komutun çalıştırılacağı dizini belirtir. Varsayılan: Projenin geçerli çalışma dizini. |
ToolTaskExtension parametreleri
Bu görev, sınıfından ToolTaskExtension devralan sınıfından ToolTask devralır ve sınıfından Task devralır. Bu devralma zinciri, görevlerden türetilen görevlere birkaç parametre ekler.
Aşağıdaki tabloda temel sınıfların parametreleri açıklanmaktadır:
Parametre | Açıklama |
---|---|
EchoOff | İsteğe bağlı bool parametre.olarak true ayarlandığında, bu görev komut satırının stdout'a kopyalanmaması için /Q cmd.exe komut satırına geçirir. |
EnvironmentVariables | İsteğe bağlı String dizi parametresi.Ortam değişkeni tanımlarının noktalı virgülle ayrılmış dizisi. Her tanım, eşittir işaretiyle ayrılmış bir ortam değişkeni adı ve değeri belirtmelidir. Bu değişkenler, normal ortam bloğuna ek olarak veya seçmeli olarak geçersiz kılmaya ek olarak oluşturulan yürütülebilir dosyaya geçirilir. Örneğin, Variable1=Value1;Variable2=Value2 . |
ExitCode | İsteğe bağlı Int32 çıkış salt okunur parametresi.Yürütülen komut tarafından sağlanan çıkış kodunu belirtir. Görev herhangi bir hata günlüğe kaydetmişse ancak işlem 0 çıkış koduna (başarılı) sahipse, bu -1 olarak ayarlanır. |
LogStandardErrorAsError | İsteğe bağlı bool parametre.ise true , standart hata akışında alınan tüm iletiler hata olarak günlüğe kaydedilir. |
StandardErrorImportance | İsteğe bağlı String parametre.Standart hata akışındaki metnin günlüğe kaydedildiği önem. |
StandardOutputImportance | İsteğe bağlı String parametre.Standart çıkış akışındaki metnin günlüğe kaydedildiği önem. |
Timeout | İsteğe bağlı Int32 parametre.Görev yürütülebilir dosyasının sonlandırıldığı süreyi milisaniye cinsinden belirtir. Varsayılan değer, zaman aşımı süresi olmadığını belirten değeridir Int.MaxValue . Zaman aşımı milisaniye cinsindendir. |
ToolExe | İsteğe bağlı string parametre.Projeler bir ToolName'i geçersiz kılmak için bunu uygulayabilir. Görevler ToolName'i korumak için bunu geçersiz kılabilir. |
ToolPath | İsteğe bağlı string parametre.Görevin temel alınan yürütülebilir dosyayı yüklediği konumu belirtir. Bu parametre belirtilmezse, görev MSBuild çalıştıran çerçevenin sürümüne karşılık gelen SDK yükleme yolunu kullanır. |
UseCommandProcessor | İsteğe bağlı bool parametre.olarak true ayarlandığında, bu görev komut satırı için bir toplu iş dosyası oluşturur ve komutu doğrudan yürütmek yerine komut işlemcisini kullanarak yürütür. |
YieldDuringToolExecution | İsteğe bağlı bool parametre.olarak true ayarlandığında bu görev, görevi yürütülürken düğümü verir. |
Açıklamalar
Gerçekleştirmek istediğiniz iş için belirli bir MSBuild görevi kullanılabilir olmadığında bu görev kullanışlıdır. Ancak, Exec
daha belirli bir görevin aksine görev, çalıştırdığı aracın veya komutun sonucuna bağlı olarak ek işlem veya koşullu işlemler yapamaz.
Görev, Exec
bir işlemi doğrudan çağırmak yerine Windows'da cmd.exe veya başka bir şekilde çağırır.
parametreleri IgnoreExitCode
ve görevin döndürdüğü false
koşulları etkiler ve IgnoreStandardErrorWarningFormat
bir hata gösterir. Varsayılan ayarlarla (false
her ikisi için de) Exec
görev, yürütülebilir dosyanın sıfır olmayan bir çıkış kodu varsa veya yürütülebilir dosyanın standart hata akışında bir tanılama iletisi bulunursa bir hata (döndürür false
) gösterir. Yalnızca yürütülebilir dosyanın sıfır olmayan bir çıkış kodu döndürdüğünde hata belirtmek istiyorsanızExec
, olarak true
ayarlayınIgnoreStandardErrorWarningFormat
.
Örnek
Aşağıdaki örnek, komutu çalıştırmak için görevi kullanır Exec
.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Binaries Include="*.dll;*.exe"/>
</ItemGroup>
<Target Name="SetACL">
<!-- set security on binaries-->
<Exec Command="echo y| cacls %(Binaries.Identity) /G everyone:R"/>
</Target>
</Project>