Задача сообщения для xbuild в xamarin?

Я пытаюсь реализовать непрерывную интеграцию с помощью xbuild в Xamarin. Я знаю, что xbuild использует файл .csproj для компиляции приложения. Я хотел напечатать значение переменных «IpaPackagePath» и «OutputPath» из файла csproj. Я думаю (?), что xbuild будет похож на msbuild. В msbuild метод печати значений заключается в использовании задачи «Сообщение», следующей за частью файла.

    <PropertyGroup>
           <CreateIpaDependsOn>
           $(CreateIpaDependsOn);
            DisplayMessages
           </CreateIpaDependsOn>
    </PropertyGroup>
    <Target Name="DisplayMessages">
        <Message Text="IPAPACKAGEPATH = $(IpaPackagePath)" />
        <Message Text="OUTPUTPATH = $(OutputPath)" />
    </Target>

    <Target Name="CopyIpa"
        Condition="'$(OutputType)' == 'Exe'
            And '$(ComputedPlatform)' == 'iPhone'
            And '$(BuildIpa)' == 'true'">
        <Copy
            SourceFiles="$(IpaPackagePath)"
            DestinationFolder="$(OutputPath)"/>    
    </Target>

Я не нахожу никаких сообщений, напечатанных на консоли, или какого-либо целевого имени «DisplayMessages». Что я делаю неправильно?

Или есть ли способ распечатать значения переменных в xbuild?


person LearneriOS    schedule 02.11.2016    source источник


Ответы (1)


Я использую Message Text в xbuild (и версию msbuild для OS-X).

Убедитесь, что ваш /verbosity: установлен как минимум на minimal, так как quiet подавляет вывод Message Text.

Пример использования:

xbuild /p:SolutionDir=~/ /target:VIEWENV Droid/Realm080.Droid.csproj

Целевой пример:

<!--    PlayScript   -->
<Target Name="VIEWENV" DependsOnTargets="BeforeResolveReferences">
    <Message Text="                          CscToolExe: $(CscToolExe) "/>
    <Message Text="                         CscToolPath: $(CscToolPath) "/>
    <Message Text="                       ReferencePath: $(ReferencePath) "/>
    <Message Text="                           ToolsPath: $(ToolsPath) "/>
    <Message Text="            TargetFrameworkDirectory: $(TargetFrameworkDirectory) "/>
~~~
</Target>

Примечание. Существующие либо в файле .target, на который есть ссылка в вашем .csproj, либо непосредственно включены в .csproj:

Пример вывода:

VIEWENV:
                            CscToolExe: mcs.exe
                           CscToolPath:
                         ReferencePath:
                             ToolsPath:
person SushiHangover    schedule 02.11.2016
comment
Где мне нужно установить параметр «/verbosity»? - person LearneriOS; 02.11.2016
comment
xbuild /verbosity:XXXXX уровни: тихий, минимальный, нормальный, подробный, диагностический - person SushiHangover; 02.11.2016
comment
‹Message Text=foo Importance=high› оно будет отображаться в выводе, даже если у вас есть многословие в тихом режиме. - person matfillion; 28.11.2016