Как мне указать, где MSBUILD также публикует веб-сервис?

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

Я использую Nant и Nant Contrib:

 <target name="build" description="builds the service">

        <msbuild project="${buildoutput}\${service.source}\wsMyService.sln" >           
            <property name="Configuration" value="Release" />           
            <property name="PublishDir" value="${buildoutput}\${service.target}\" />            
            <property name="Targets" value="Publish" />
        </msbuild>

    </target>

Может кто-нибудь показать мне, как это должно быть сделано. Я могу изменить выходную папку на страницах свойств проекта, но я хочу, чтобы это можно было настроить из Nant, чтобы я мог указать путь во время сборки.

2 ответа

Когда вы вызываете msbuild из командной строки, вы можете передать строки для назначения свойств msbuild. Я ничего не знаю о NAnt, поэтому я предполагаю, что он должен прибегнуть к вызывающему msbuild.exe. Таким образом, вы можете переопределить свойства msbuild следующим образом:

MsBuild /property:buildoutput=C:\arbitrary\folder\bin\

Эти свойства, указанные в командной строке, переопределяют все, что вы указываете в файлах сборки.

Это то, что я сейчас использую для создания веб-сервисов с использованием msbuild:

<Target Name="BuildWebService">
    <ConvertToAbsolutePath Paths="$(Root)">
      <Output TaskParameter="AbsolutePaths" PropertyName="Root" />
    </ConvertToAbsolutePath>

    <ItemGroup>
      <WebServices Include="$(Root)\services\Solutions\**\*.host.csproj"/>
    </ItemGroup>

  <MSBuild Projects="%(WebServices.FullPath)"
          Targets="Build"
          Properties="WebProjectOutputDir=$(Root)\services\build\WebService\%(RecursiveDir);OutDir=$(Root)\services\build\WebService\%(RecursiveDir)\bin\" />
  </Target>

Надеюсь, что вы можете перевести на Нант достаточно легко.

Другие вопросы по тегам