MSBuild PreBuildEvent/PostBuildEvent olayları sırasında $ (TargetPath) ve! (TargetPath) gibi özellik başvuruları arasındaki fark nedir? "! (" Ben bazı durumlarda farklı çalışır ama formdaki herhangi bir belge olduğunu bulmakMSBuild Özellik Referansları
http://msdn.microsoft.com/en-us/library/bb383819.aspx Bu en yakın olan ben bulmak mümkün görünmektedir
Örnek:..
<Target Name="BeforeBuild">
<CreateProperty Value="NewValue">
<Output TaskParameter="Value" PropertyName="TargetPath" />
</CreateProperty>
</Target>
<PropertyGroup>
<PreBuildEvent>
echo $(TargetPath)
echo !(TargetPath)
</PreBuildEvent>
</PropertyGroup>
"newvalue". Bu ancak tanımladığınız diğer özellikleri için çalışmıyor yankı sonra orijinal TargetPath yankı ve Will.
Herhangi bir yardım çok takdir!
İlginç. Bu davranışı sergileyen eksiksiz bir proje dosyası gönderebilir misiniz? Ben bir örnek "ConsoleApplication1.csproj" uzatarak çoğaltmaya çalıştım, ama yapamadı. Echo! (TargetPath) 'sadece"! (TargetPath) "yazdı. –
Bir şey belgelenmemişse, hiç kullanmamalısınız. –
Bu konuda kafa yoruyordum ve "araştırıyordum". Tek bir zamana benziyor "(MSBuild için anlamlıdır), düz metin haricinde," Durum "özniteliğinde" operatör-dışı "olarak kullanmak içindir. Örnek:' Durum = "! ('$ (foo) '==' 1 ')' 'Hiç mümkün değil, bazı özel araçlar, ön işleme veya"! (TargetPath) "i başka bir şey olarak yorumlayan benzer bir metin kullanıyorsunuz? –