2013-05-20 12 views
5

Mam rozwiniętych zwyczaj zadanie MSBuild nazywa ExportSolution i muszę przekazać niestandardowe enumPackageType wartość.Przełęcz zmienna niestandardowego typu do niestandardowego MSBuild zadania

PackageType jest prosta:

public enum PackageType 
{ 
    Managed, 
    Unmanaged, 
    Both 
} 

Skrypt MSBuild jest zbyt prosta:

<Target Name="ExportSolution" DependsOnTargets="BuildTasksDll"> 
    <Message Text="Exporting solution '$(SolutionName)' to '$(SolutionPath)'" /> 
    <ExportSolution SolutionName="$(SolutionName)" PackageType="Both"></ExportSolution> 
</Target> 

jednak uruchomiony skrypt do tego celu Otrzymuję następujący komunikat o błędzie:

błąd MSB4030: "Obie" jest nieprawidłową wartością dla parametru "PackageType" ter zadania "ExportSolution". Parametr "PackageType" ma typ "Tasks.Common.PackageType".

W jakim formacie powinienem podać wartość zmiennej PackageType, aby ten kod działał?

+0

Czy próbowałeś przekazać go jako pełną nazwę typu, np. 'Tasks.Common.PackateType.Both'? Innym rozwiązaniem może być przekazanie go jako ciąg, a następnie przeanalizowanie go wewnątrz zadania – Pako

+0

@Pako Próbowałem takiego podejścia, nie ma różnicy, niestety ... – shytikov

+0

"Obie" ma wartość 2, więc przekazanie "2" do własność może działać. Nie będzie to jednak bardzo czytelne, więc myślę, że sugestia Pako, by uczynić właściwość ciągiem i przeanalizować go wewnątrz zadania, może być lepsza. . –

Odpowiedz

0

Chciałbym zmienić Enum tak.

public enum PackageType 
{ 
    Managed = 0, 
    Unmanaged = 1, 
    Both = 2 
} 

Następnie chciałbym edytować mój skrypt budowy, aby używać liczb całkowitych jako metody wyboru.

<ExportSolution SolutionName="$(SolutionName)" PackageType=2></ExportSolution> 

To może nie być rozwiązanie, którego szukasz, ale może działać zgodnie z potrzebami.

+0

To może zadziałać, ale oznacza to również, że muszę zmienić interfejs klasy nazywanej używaniem całkowitych liczb całkowitych zamiast wyliczeń ... Mogłabym łatwo usunąć to wyliczenie, a następnie ... I nie będzie jasności i czytelności w kod już .... – shytikov

Powiązane problemy