2011-01-12 5 views

Répondre

4

Dans le répertoire C: \ Program Files \ MSBuild \ Microsoft \ WebDeployment \ v9.0 ou v10.0 est le fichier Microsoft.WebDeployment.targets où la propriété TempBuildDir est définie dans la cible _PrepareForBuild.

Étant donné qu'ils utilisent la tâche CreateProperty pour définir TempBuildDir, elle est toujours définie sur la valeur codée en dur même si la propriété existe déjà. Cela pourrait être d'éliminer le problème de quelqu'un utilisant la propriété TempBuildDir pour quelque chose d'autre et de gâcher la construction.

Vous devez modifier le fichier Microsoft.WebDeployment.targets pour utiliser un répertoire temporaire différent. AVERTISSEMENT: Ce qui suit est en train de changer un fichier dont vous n'avez pas le contrôle, alors utilisez vos propres risques.

Si vous deviez changer les lignes suivantes dans la cible de _PrepareForBuild de

<CreateProperty Value=".\TempBuildDir\"> 
    <Output TaskParameter="Value" PropertyName="TempBuildDir" /> 
    </CreateProperty> 

à

<CreateProperty Value="$(MySpecialWebTempBuildDir)" Condition=" '$(MySpecialWebTempBuildDir)' != '' "> 
    <Output TaskParameter="Value" PropertyName="TempBuildDir" /> 
    </CreateProperty> 
    <CreateProperty Value=".\TempBuildDir\" Condition=" '$(MySpecialWebTempBuildDir)' == '' "> 
    <Output TaskParameter="Value" PropertyName="TempBuildDir" /> 
    </CreateProperty> 

Réglez ensuite la propriété MySpecialWebTempBuildDir dans votre dossier de projet et il devrait la remplacer. Si vous ne définissez pas MySpecialWebTempBuildDir, il utilisera TempBuildDir comme précédemment.

Si vous installez une mise à jour du package de déploiement Web, vos modifications seront remplacées.

1

Une autre solution consiste à décommenter et passer outre la cible "BeforeBuild" du projet de déploiement Web comme suit:

<Target Name="BeforeBuild"> 
<CreateProperty Value=".\TempBuildDirDebug\" Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
    <Output TaskParameter="Value" PropertyName="TempBuildDir" /> 
</CreateProperty> 
<CreateProperty Value=".\TempBuildDirRelease\" Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
    <Output TaskParameter="Value" PropertyName="TempBuildDir" /> 
</CreateProperty>