NAnt <msbuild> пользовательский выходной каталог

Используйте host_vars . Создайте каталог ~ / lab8 / ANSIBLE / RTR-TEMPLATE / host_vars и создайте файлы с переменными, специфичными для хоста.

~ / lab8 / ANSIBLE / RTR-TEMPLATE / host_vars / 198.51.100.4

routers_all:
  - {OSPF: 'Yes', OSPF_area: '0', OSPF_id: '1', hostname: R1}
int_details_R1:
  - {int: Loopback1, ip: 10.0.0.1, mask: 255.255.255.255}
  - {int: FastEthernet0/0, ip: 198.51.100.3, mask: 255.255.255.0}
  - {int: FastEthernet1/0, ip: 198.51.101.3, mask: 255.255.255.0}
  - {int: FastEthernet2/0, ip: 198.51.102.3, mask: 255.255.255.0}

~ / lab8 / ANSIBLE / RTR-TEMPLATE / host_vars / 198.51.100.5

routers_all:
  - {OSPF: 'Yes', OSPF_area: '0', OSPF_id: '2', hostname: R2}
int_details_R2:
  - {int: Loopback1, ip: 20.0.0.1, mask: 255.255.255.255}
  - {int: FastEthernet0/0, ip: 198.51.100.4, mask: 255.255.255.0}
  - {int: FastEthernet1/0, ip: 198.51.101.4, mask: 255.255.255.0}

[117 ] Эти переменные будут добавлены «плагином vars по умолчанию», как описано в Приоритет переменной: куда поместить переменную?

7
задан Michael La Voie 24 April 2012 в 17:56
поделиться

7 ответов

Можно указать и переопределить некоторые свойства для msbuild. Для определения выходного каталога переопределите свойство OutputDir.

<target name="export" description="export code from svn">
        <delete dir="${Delete.Dir}" />
        <exec program="svn" commandline="export ${MySVN.Repos} ${MySVN.Dest}" />
        <msbuild project="${Solution.Filename}">
            <property name="Configuration" value="Release"/>
            <property name="OutputDir" value="${Output.Dir}"/>
        </msbuild>
</target>
9
ответ дан 6 December 2019 в 06:51
поделиться

Просто имел быстрый быстрый взгляд на проект, делает OutputPath вместо справки OutputDir?

Другая опция могла бы быть веб-проектом развертывания, который я люблю, потому что она называет aspnet_compiler, а также компилятор C#, таким образом, она берет проблемы, которые можно иначе пропустить до развертывания.

7
ответ дан 6 December 2019 в 06:51
поделиться

Сценарий сборки для одного из наших проектов использует эту команду для публикации веб-приложения:

msbuild.exe /t:_CopyWebApplication /p:Configuration=Release /p:OutDir=.\..\published\ /p:WebProjectOutputDir=.\..\published

(Текущий каталог установлен на каталог проекта веб-приложения в этой точке, которая является, почему никакой .csproj файл не указан. Все решение было уже восстановлено ранее в сценарии.)

Звуком его WebProjectOutputDir мог бы быть свойством, в котором Вы нуждаетесь.

/t: _ CopyWebApplication может также быть важным. Я не использовал NAnt, таким образом, я не знаю, можно ли передать этот параметр с msbuild задачей. Вы, возможно, должны использовать исполнительную задачу, как в этом примере: http://www.netomatix.com/development/wapwithnant.aspx. Этот пример, кажется, восстанавливает и копирует, все в одном идут.

5
ответ дан 6 December 2019 в 06:51
поделиться

Хм, не знайте, как сделать это с MSBuild в Nant, но использующий NAnt, я сделал это ранее как это:

<solution solutionfile="${build.dir}\solution.sln">
    <webmap>
       <map url="http://localhost/somdir/project.csproj"
            path="c:\inetpub\wwwroot\somelocaldir" />
    <webmap>
</solution>

Но затем, Вы используете задачу 'решения' NAnt offcourse вместо того, чтобы использовать MSBuild непосредственно.

править: Я также взглянул на некоторые msbuild опции; Если Вы устанавливаете OutDir & OutputPath на то же значение, что происходит?

0
ответ дан 6 December 2019 в 06:51
поделиться

Источник беспорядка - то, что Вы смешиваете две отличных системы сборки. Ваша цель NAnt делегирует всю работу выяснения, как опубликовать Ваше веб-приложение в файл решения, следовательно следовательно в csproj файлы, на которые это ссылается.

файлы csproj являются файлами MsBuild, таким образом, необходимо, вероятно, посмотреть там для того, как направить вывод проекта. Это сообщение dave^2 могло бы быть полезным по той проблеме.

Можно опубликовать веб-приложение везде, где Вы хотите использовать NAnt, если это делает публикацию. Можно сделать то же с MsBuild. Причина Вашего затруднительного положения состоит в том, что NAnt не делает публикации в этом случае, и Вы позволяете csproj файлу определить местоположение Вашего веб-каталога. Так или обойти csproj файл и иметь NAnt (или MsBuild) публикуют код; или измените csproj файл для публикации веб-приложения, где Вы хотите; или сделайте второе местоположение для своего веб-приложения и опубликуйте его там также использование Вашего инструмента сборки.

AFAIK, те опции являются исчерпывающими.

1
ответ дан 6 December 2019 в 06:51
поделиться

При использовании задачи правильный имя свойства - OutDir, а не OutputDir:

    <msbuild project="${Solution.Filename}">
        <property name="Configuration" value="Release"/>
        <property name="OutDir" value="${Output.Dir}"/>
    </msbuild>
4
ответ дан 6 December 2019 в 06:51
поделиться

Попробуйте что-то вроде этого:

<property name="nant.settings.currentframework" value="net-3.5"/>    
<msbuild project="${Solution.Filename}">
    <property name="Configuration" value="Release"/>
    <property name="OutDir" value="${Full.Path}\Output\\"/>
    <property name="WebProjectOutputDir" value="${Full.Path}\Output\Web\\"/>
</msbuild>
0
ответ дан 6 December 2019 в 06:51
поделиться