2009-08-03 7 views

Antwort

10

Was ich tun würde, ist Ihre verschiedenen Build-Typen in der Konfigurationsmanager (Build-> Configuration Manager) und Setup jede der erforderlichen Konstanten auf jeder der Build-Typen definieren. Sie können dann jedes Teammitglied einfach den gewünschten Build-Typ auswählen und automatisch die entsprechenden Konstanten verwenden. (Ich denke, dass der zuletzt verwendete Buildtyp in der .suo-Datei gespeichert ist, was "Lösungsbenutzeroptionen" bedeutet, und Sie würden normalerweise nicht in Ihre Quellcodeverwaltung einchecken, so dass dies speziell für jeden Benutzer beibehalten würde).

Sie können Pre-Prozessor Konstanten auf der C# Compiler-Befehlszeile definieren die /define verwenden. Schalter. aber Sie werden das Problem haben, wie man das nennt. Alle Änderungen, die Sie an den Projekteigenschaften vornehmen, um diese zu verwenden, werden in der csproj-Datei gespeichert. Sie müssten Ihr gesamtes Gebäude stattdessen über die Befehlszeile erstellen, was Sie sicher nicht wollen. Sie können sie auch in Msbuild-Skripten definieren, aber Sie hätten das gleiche Problem.

8

Dies ist eine alte Frage, aber auf einer Ahnung habe ich etwas müde und es hat funktioniert. Es stellt sich heraus, dass Sie bedingte Symbole in der Datei csproj.user definieren können. Ich nehme an, das gleiche würde für andere Sprachen funktionieren, aber ich habe es nicht versucht.

Fügen Sie einfach so etwas wie das Folgende zum csproj.user hinzu.

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

Eigentlich mag ich @SimonPStevens Lösung besser, weil es TFS umfasst, statt Versteck. Manchmal ist dies jedoch einfach einfacher ....