visual-studio-2010msbuildnantmsbuild-tasknant-task

MSBuild 2010 - how to publish web app to a specific location (nant)?


I'm trying to get MSBuild 2010 to publish a web app to a specific location. I can get it to publish the deployment package to a particular path, but the deployment package then adds its own path that changes.

For example: if I tell it to publish to C:\dev\build\Output\Debug then the actual web files end up at C:\dev\build\Output\Debug\Archive\Content\C_C\code\app\Source\ControllersViews\obj\Debug\Package\PackageTmp And the C_C part of the path changes (not sure how it chooses this part of the path).

This means I can't just script a copy from the publish location.

I'm using this nant/msbuild command at the moment:

  <target name="compile" description="Compiles">
<msbuild project="${name}.sln">

  <property name="Platform" value="Any CPU"/>
  <property name="Configuration" value="Debug"/>
  <property name="DeployOnBuild" value="true"/>
  <property name="DeployTarget" value="Package"/>
  <property name="PackageLocation" value="C:\dev\build\Output\Debug\"/>
  <property name="AutoParameterizationWebConfigConnectionStrings" value="false"/>
  <property name="PackageAsSingleFile" value="false"/>

</msbuild>

Any ideas on how to get it to send the web files directly to a specific location?


Solution

  • msbuild /t:Build;PipelinePreDeployCopyAllFilesToOneFolder /p:Configuration=Release;_PackageTempDir=C:\temp\somelocation;AutoParameterizationWebConfigConnectionStrings=false MyProject.csproj
    

    Corresponding NAnt script:

    <msbuild project="MyProject.csproj" target="PipelinePreDeployCopyAllFilesToOneFolder">
      <property name="Configuration" value="Release" />
      <property name="_PackageTempDir" value="C:\temp\somelocation" />
      <property name="AutoParameterizationWebConfigConnectionStrings" value="false" />
    </msbuild>
    

    References

    See also Team Build: Publish locally using MSDeploy