2010-04-28 13 views
26

Czy są jakieś właściwości MSBuild, które ustawia Visual Studio? Szukam zachowania warunkowego w zależności od wersji (jeśli w ogóle) wizualnego studia.W MSBuild można ustalić, czy używam programu Visual Studio

+0

Czy widziałeś odpowiedź na poprzedni wpis: http://stackoverflow.com/questions/2499253/msbuild-how-to-set-condition-using-a-condition-stored-in-a-property Może to trafi na właściwą ścieżkę – used2could

+0

to crud od starych wersji VS i nie ma go w nowszych plikach projektu. Zignoruj ​​to całkowicie. – dan

Odpowiedz

34

Wartość właściwości, której należy użyć to BuildingInsideVisualStudio, podczas budowania wewnątrz programu Visual Studio ta właściwość zostanie ustawiona na wartość true. Ponieważ ProductVersion jest zadeklarowany w pliku projektu, nie można go użyć, ponieważ będzie miał taką samą wartość, niezależnie od tego, czy będzie budowany wewnątrz VS, czy za pośrednictwem msbuild.exe.

+3

Dokumentacja tutaj: http://msdn.microsoft.com/en-us/library/ms171468(en-us).aspx. –

+0

Zwróć uwagę, że ta właściwość jest włączona, nawet jeśli korzystasz z devenv.com z konsoli. –

0

Tak, <ProductVersion> znajduje się na liście w pliku projektu. Jest zgodny z numerem wersji programu Visual Studio.

+0

Zobacz mój komentarz na ten temat. –

0

<ProductVersion> wyświetli wersję MSBuild, która uruchamia proces kompilacji.

Należy zauważyć, że w VS 2010 proces kompilacji może być ukierunkowany na .Net 4.0 lub 3.5. Należy się zastanowić, czy kompilacja warunkowa zależy od samej wersji msbuild lub od docelowej struktury kompilacji i narzędzi, z których zbudowana jest wersja za pomocą. Jeśli twój stan jest oparty na docelowej strukturze, użyj <TargetFrameworkVersion>.

Oczywiście, jeśli twoja kompilacja może być uruchomiona również w VS 2008, musisz obsłużyć właściwą rezerwę, jeśli brak jest <TargetFrameworkVersion>.

1

Aby bezpośrednio odpowiedzieć na pytanie w tytule - jeśli po prostu chcesz wiedzieć, czy są budowane z VS, czy nie, sprawdzić wartość IsDesktopBuild który powróci true lub false odpowiednio.

+2

Dotyczy to tylko TFS. –

+0

@Sayed thanks. Ponieważ użyłem MSBuild tylko z TFS, nie wiem, gdzie są punkty podziału! – AakashM

Powiązane problemy