2012-02-22 8 views
13

Mam serię właściwości, które muszę ustawić w ~ 15 projektach. Czy istnieje sposób na umieszczenie tych właściwości w jednym pliku i czy wszystkie pliki projektu odwołują się do jednego pliku za pomocą jakiejś dyrektywy importowania, a nie powielania właściwości w każdym pliku projektu?Elementy wielokrotnego użytku PropertyGroup w pliku csproj

EDYCJA: Aby wyjaśnić, mówię o elementach <PropertyGroup> w pliku csproj. Wszystkie projekty wymagają tej samej serii ustawień <PropertyGroup>. Te elementy ustawiają właściwości, takie jak DebugSymbols lub DefineDebug i nie są używane do odwoływania się do plików źródłowych.

Odpowiedz

18

Element <Import> mogą być wykorzystane do tego, podobnie jak zwyczaj ukierunkowany pliki są używane.

Plik wielokrotnego użytku powinien wyglądać następująco:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
     <!-- Properties go here --> 
    </PropertyGroup> 
</Project> 

Uwaga że posiadanie elementu głównego Project z deklaracją xmlns jest wymagane - VS nie załaduje projekt odsyłania ten plik bez niego.

Zapisałem moje ustawienia właściwości w moim katalogu rozwiązań jako ProjectBuildProperties.targets.

Aby dołączyć plik w inne projekty, dodałem to do plików csproj:

<Import Project="$(SolutionDir)ProjectBuildProperties.targets"/> 

I to działa!

2

Można utworzyć udostępniony plik MSBuild, który może być importowany przez wszystkie projekty.

Ten post omawia to rozwiązanie i wykazać go here