2011-08-17 13 views
13

¿Hay alguna forma de establecer los parámetros de MSDeploy en el archivo .csproj del proyecto ASP.NET MVC? Particularmente un parámetro de "omisión", que debería omitir una carpeta "Temp".Cómo establecer la configuración de MSDeploy en el archivo .csproj

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

.. o ¿cómo puedo pasar este parámetro a la lista de argumentos MSBuild.exe?

+0

¿Cómo se define su destino? ¿Estás ejecutando msbuild.exe explícitamente? – sll

+0

MSBuild.exe es ejecutado por el servidor de compilación TFS con argumentos similares a esto: '/ p: DeployOnBuild = true; DeployTarget = MsDeployPublish; MSDeployPublishMethod = WMSVC; MsDeployServiceUrl = ...' –

+0

¿Puede agregar un argumento explícitamente como msbuild.exe/p: absolutePath = "\\ temp"? – sll

Respuesta

10

Defina <MsDeploySkipRules> en el archivo de proyecto. Por ejemplo:

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

Para que funcione durante la implementación a través de la función "Publicar" de Visual Studio, se debe usar 'AfterAddIisSettingAndFileContentsToSourceManifest' en lugar de' OnBeforePackageUsingManifest'. Ver comentario http://blog.alanta.nl/2011/02/web-deploy-customizing-deployment.html?showComment=1314013105475#c1406362862563428999 –

+4

Cuando pruebo esto, obtengo "skiption" de la directiva de omisión no reconocida ". en la construcción. ¿Qué me estoy perdiendo? –

+1

Recibo el mismo error que Paul Smith. – Chris

Cuestiones relacionadas