Jak mogę przekazać niestandardową właściwość MsBuild do silnika kompilowanego Visual Studio z Visual Studio Extension (chcę napisać niestandardowy dodatek)? Podobnie jak Visual Studio przechodząc właściwości takie jak $(Configuration)
i $(Platform)
, chciałbym dołączyć do procesu kompilacji i przekazać moją własność (np. $(MyCustomProperty) = "foobar"
). Wiem, że można to osiągnąć przy użyciu linii poleceń MsBuild (/p:Property
), ale chcę to zrobić z rozszerzenia.Przekazywanie niestandardowych właściwości projektu z Visual Studio Extension podczas kompilacji
Oto przykład tego, co chciałbym zrealizować: pole tekstowe na pasku narzędzi Visual Studio, w którym użytkownik może wpisać tekst - wartość, którą chciałbym przekazać, aby zbudować silnik.
Następnie w .csproj:
<PropertyGroup>
<MyCustomProperty Condition=" '$(MyCustomProperty)' == '' ">DefaultValue</MyCustomProperty>
</PropertyGroup>
<Target Name="AfterBuild" Condition=" '$(MyCustomProperty)' = 'DoAfterBuild' ">
...
</Target>
więc kierować AfterBuild
będzie exectued tylko wtedy, gdy użytkownik wpisze DoAfterBuild
w polu moje rozszerzenie za tekst
Jak Visual Studio Extension wywołany msbuild? – Nicodemeus
@NickCarlson - Nie chcę wywoływać MsBuild, ale pliki .csproj ARE MsBuild i Visual Studio przekazuje rzeczywiste wartości zmiennych $ (Platform) i $ (Configuration) podczas kompilacji. Chcę, aby wartość $ (MyOwnProperty) została przekazana do tego skryptu, więc mogę go użyć (np.) –
W swoim oryginalnym wpisie powiedziałeś chcesz móc zdefiniować własną własność poprzez rozszerzenie Visual Studio, ale teraz mówisz, że nie chcesz wywoływać MSBUILD. Czy piszesz własne rozszerzenie i chcesz zdefiniować własne niestandardowe właściwości? Być może próbka kodu pomoże zilustrować problem. – Nicodemeus