2011-01-12 2 views

ответ

4

В каталоге C: \ Program Files \ MSBuild \ Microsoft \ WebDeployment \ v9.0 или v10.0 находится файл Microsoft.WebDeployment.targets, где свойство TempBuildDir определено в target_PrepareForBuild.

Поскольку они используют задачу CreateProperty для установки TempBuildDir, он всегда задается жестко запрограммированным значением, даже если свойство уже существует. Это может быть устранение проблемы с кем-то, использующим свойство TempBuildDir, для чего-то еще и испортить сборку.

Вам нужно будет изменить файл Microsoft.WebDeployment.targets, чтобы использовать другой каталог temp.

ВНИМАНИЕ: При изменении файла у вас нет контроля, поэтому используйте свой собственный риск.

Если вы измените следующие строки в мишени _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, как и раньше.

Если вы установите обновление в пакет веб-развертывания, ваши изменения будут перезаписаны.

1

Другим решением является разкомментируйте и переопределить «BeforeBuild» цель проекта развертывания веб следующим образом:

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

Смежные вопросы