В каталоге C: \ Program Files \ MSBuild \ Microsoft \ WebDeployment \ v9.0 или v10.0 находится файл Microsoft.WebDeployment.targets, в котором свойство TempBuildDir определено в цели _PrepareForBuild.
Поскольку они используют задачу CreateProperty для установки TempBuildDir, для него всегда устанавливается жестко заданное значение, даже если свойство уже существует. Это могло бы устранить проблему того, что кто-то использовал свойство TempBuildDir для чего-то другого и испортил сборку.
Вам потребуется изменить файл Microsoft.WebDeployment.targets, чтобы использовать другой временный каталог.
ПРЕДУПРЕЖДЕНИЕ. Следующее изменение файла, который вы не можете контролировать, поэтому вы используете его на свой страх и риск.
Если вы измените следующие строки в цели _PrepareForBuild с
<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>
Затем установите свойство MySpecialWebTempBuildDir в файле проекта, и оно должно переопределить его. Если вы не установите MySpecialWebTempBuildDir, он будет использовать TempBuildDir, как и раньше.
Если вы установите обновление для пакета веб-развертывания, ваши изменения будут перезаписаны.