2009-08-03 8 views

Odpowiedz

10

Co mogę zrobić, to zdefiniować różne typy kompilacji w menedżerze konfiguracji (Build-> Configuration Manager) i skonfigurować każdą z wymaganych stałych dla każdego typu kompilacji. Następnie możesz kazać każdemu członkowi zespołu wybrać typ kompilacji, który chcesz zrobić, a automatycznie użyje odpowiednich stałych. (Myślę, że ostatnio używany typ kompilacji jest przechowywany w pliku .suo, który jest "opcją użytkownika rozwiązania" i zazwyczaj nie sprawdzałbyś kontroli źródła, więc byłby on utrzymywany specjalnie dla każdego użytkownika).

Możesz zdefiniować stałe procesorów wstępnych w wierszu komend kompilatora C#, używając /define. przełącznik. ale będziesz miał problem, jak to nazwać. Wszelkie zmiany w właściwościach projektu, które będą używane, zostaną zapisane w pliku csproj. Zamiast tego musiałbyś wykonać cały budynek z linii poleceń, na co na pewno nie będziesz chciał. Możesz także zdefiniować je w skryptach msbuild, ale będziesz miał ten sam problem.

8

To jest stare pytanie, ale przeczucie coś zmęczyło i zadziałało. Okazało się, że możesz definiować symbole warunkowe w pliku csproj.user. Zakładam, że to samo będzie działać dla innych języków, ale nie próbowałem.

Po prostu dodaj coś takiego do csproj.user.

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
    <DefineConstants>MySpecialConstant, TestBlahBlah</DefineConstants> 
</PropertyGroup> 

Tak naprawdę lubię rozwiązanie @SimonPStevens lepiej, ponieważ obejmuje ono TFS zamiast ukrywać. Czasami jednak jest to po prostu łatwiejsze ...

Powiązane problemy