2011-08-17 6 views
13

Existe-t-il un moyen de définir les paramètres MSDeploy dans le fichier .csproj lui-même du projet ASP.NET MVC? En particulier un paramètre "skip", qui devrait ignorer un dossier "Temp". Ou comment est-ce que je peux passer ce paramètre dans la liste d'arguments de MSBuild.exe?Comment définir les paramètres MSDeploy dans le fichier .csproj

+0

Comment votre cible est-elle définie? Vous exécutez msbuild.exe explicitement? – sll

+0

MSBuild.exe est exécuté par le serveur TFS Build avec des arguments similaires à ceux-ci: '/ p: DeployOnBuild = true; DeployTarget = MsDeployPublish; MSDeployPublishMethod = WMSVC; MsDeployServiceUrl = ...' –

+0

Pouvez-vous ajouter un argument explicitement comme msbuild.exe/p: absolutePath = "\\ temp"? – sll

Répondre

10

Définissez <MsDeploySkipRules> dans le fichier de projet. Par exemple:

<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

Pour que cela fonctionne pendant le déploiement via la fonctionnalité "Publier" de Visual Studio, vous devez utiliser 'AfterAddIisSettingAndFileContentsToSourceManifest' au lieu de 'OnBeforePackageUsingManifest'. Voir le commentaire http://blog.alanta.nl/2011/02/web-deploy-customizing-deployment.html?showComment=1314013105475#c1406362862563428999 –

+4

Lorsque j'essaie cela, j'obtiens "skipaction 'non reconnu" skipaction "." dans la construction. Qu'est-ce que je rate? –

+1

J'ai la même erreur que Paul Smith. – Chris

Questions connexes