如何指定MSBUILD发布web服务的位置?

如何指定MSBUILD发布web服务的位置?,msbuild,nant,nantcontrib,Msbuild,Nant,Nantcontrib,我在网上看到了很多关于这方面的信息,但没有明确和具体的信息来解决在构建时将web服务或web站点发布到指定文件夹的问题 我正在使用Nant和Nant Contrib: <target name="build" description="builds the service"> <msbuild project="${buildoutput}\${service.source}\wsMyService.sln" >

我在网上看到了很多关于这方面的信息,但没有明确和具体的信息来解决在构建时将web服务或web站点发布到指定文件夹的问题

我正在使用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配置此文件夹,以便在生成时指定路径。

从命令行调用msbuild时,可以传入字符串以分配给msbuild属性。我对NAnt一无所知,所以我认为它必须求助于调用msbuild.exe。因此,您可以像这样重写msbuild属性:

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

从命令行指定的这些属性将覆盖您在生成文件中指定的任何内容

这就是我当前使用msbuild构建Web服务的方法:

<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>


希望您能很容易地翻译成nant。

构建输出与发布相同吗?