Jak wyprowadzić wartość zmiennej do dziennika z MSBuild?Jak wyprowadzić wartość zmiennej do dziennika z MSBuild
Próbuję debugować skrypt MSBuild i chcę wyprowadzić wartość zmiennej do dziennika.
Jak wyprowadzić wartość zmiennej do dziennika z MSBuild?Jak wyprowadzić wartość zmiennej do dziennika z MSBuild
Próbuję debugować skrypt MSBuild i chcę wyprowadzić wartość zmiennej do dziennika.
Możesz teraz skrypty z VS2010 teraz. Wymaga trochę hakowania i nie jest oficjalnie wspierany, ale jest opcją.
W przeciwnym razie użyj zadania Message
. Obowiązują normalne reguły dotyczące tworzenia odniesień Properties
, Items
i Item Metadata
(określane również jako batching).
Ten przykład:
<Project DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<TestItem Include="test1" />
<TestItem Include="test2" />
<TestItem Include="test3" />
</ItemGroup>
<PropertyGroup>
<TestProperty>Property Value</TestProperty>
</PropertyGroup>
<Target Name="TestMessage" AfterTargets="Build" >
<!--Use $(Property Name) to reference a property-->
<Message Text="$(TestProperty)" Importance="high"/>
<!--Use @(Item Name) to output a semi-colon separated list of items on one line-->
<Message Text="@(TestItem)" Importance="high"/>
<!--Use %(Item Name.Metadata Property Name) to call the Message task once for each item.-->
<!--This will output each item on a separate line-->
<Message Text="%(TestItem.Identity)" Importance="high"/>
</Target>
</Project>
przyniesie to wyjście:
Property Value
test1;test2;test3
test1
test2
test3
Aby ułatwić sobie posługiwanie się odpowiedzią, należy rozważyć dodanie atrybutu "Ważność =" "do każdego z elementów wiadomości. W ten sposób komunikaty będą domyślnie wyświetlane po wywołaniu msbuild lub jeśli będziesz szukał w wynikach kompilacji w VS –
Również, aby szybko nawiązać połączenie, możesz dodać cel, który właśnie zdefiniowałeś w istniejącym csproj i dodać BeforeTargets = "Zbuduj" do celu. Następnie buduj z VS i spójrz na wynik kompilacji. –
Dane wyjściowe będą wyświetlane dokładnie tam, gdzie? W oknie wyjściowym programu Visual Studio (i "Pokaż ujęcie z: Kompilacja")? Ponadto, w jakim pliku to wkładam? Po prostu próbowałem dołączyć to do pliku 'C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ 15.0 \ Bin \ Microsoft.Common.CurrentVersion.targets', ale nie widzę niczego w wydajność. – jbyrd
Myślę, że to pytanie może pomóc w rozwiązaniu problemu. http://stackoverflow.com/questions/2968077/trouble-with-outputting-msbuild-variables – awright18