14

Is there a way to set MSDeploy parameters in .csproj file itself of ASP.NET MVC project? Particularly a "skip" parameter, which should skip a "Temp" folder.

-skip:objectName=dirPath,absolutePath="\\temp"

.. or how can I pass this parameter into MSBuild.exe arguments list?

Grief Coder
  • 6,508
  • 9
  • 38
  • 51
  • How your target is defined? You running msbuild.exe explicitly? – sll Aug 17 '11 at 23:46
  • MSBuild.exe is executed by TFS Build server with arguments similar to this: `/p:DeployOnBuild=true;DeployTarget=MsDeployPublish;MSDeployPublishMethod=WMSVC;MsDeployServiceUrl=...` – Grief Coder Aug 17 '11 at 23:51
  • Can you add an argument explicitly like msbuild.exe /p:absolutePath="\\temp" ? – sll Aug 17 '11 at 23:54
  • 1
    I don't think so, since absolutePath is a value of -skip parameter which should be passed to msdeploy.exe – Grief Coder Aug 18 '11 at 00:16
  • 1
    When I try this, I get "Unrecognized skip directive 'skipaction'." in the build. What am I missing? – Paul Smith Jun 21 '12 at 14:17

1 Answers1

11

Define <MsDeploySkipRules> in the project file. For example:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <OnBeforePackageUsingManifest>AddSkipRules</OnBeforePackageUsingManifest>
  </PropertyGroup>
  <Target Name="AddSkipRules">
    <ItemGroup>
      <MsDeploySkipRules Include="SkipTempDirOnDeploy">
        <SkipAction></SkipAction>
        <ObjectName>dirPath</ObjectName>
        <AbsolutePath>$(_Escaped_PackageTempDir)\\Temp$</AbsolutePath>
        <XPath></XPath>
      </MsDeploySkipRules>
    </ItemGroup>
  </Target>
</Project>
Konstantin Tarkus
  • 37,618
  • 14
  • 135
  • 121
  • 9
    For it to work during deployment through Visual Studio "Publish" feature one have to use `AfterAddIisSettingAndFileContentsToSourceManifest` instead of `OnBeforePackageUsingManifest`. See comment http://blog.alanta.nl/2011/02/web-deploy-customizing-deployment.html?showComment=1314013105475#c1406362862563428999 – Anthony Serdyukov Mar 01 '12 at 05:46
  • 4
    When I try this, I get "Unrecognized skip directive 'skipaction'." in the build. What am I missing? – Paul Smith Jun 21 '12 at 15:38
  • 3
    I think it should be "Delete" – Brian Schroer Jul 16 '12 at 13:18
  • I tried "Delete" but it also didn't work. I had to completely remove the SkipAction element. Also, thanks Anthony Serdyukov for your comment. It was very useful. – Augusto Barreto Aug 30 '15 at 00:40