2011-01-12 12 views

Antwort

4

Im Verzeichnis C: \ Programme \ MSBuild \ Microsoft \ WebDeployment \ v9.0 oder v10.0 befindet sich die Datei Microsoft.WebDeployment.targets, in der die Eigenschaft TempBuildDir im Ziel _PrepareForBuild definiert ist.

Da sie die CreateProperty-Task zum Festlegen von TempBuildDir verwenden, wird sie immer auf den fest codierten Wert gesetzt, auch wenn die Eigenschaft bereits vorhanden ist. Dies könnte sein, um das Problem zu beheben, dass jemand die TempBuildDir-Eigenschaft für etwas anderes verwendet und den Build in Unordnung bringt.

Sie müssten die Datei Microsoft.WebDeployment.targets ändern, um ein anderes temporäres Verzeichnis zu verwenden.

WARNUNG: Im Folgenden wird eine Datei geändert, über die Sie keine Kontrolle haben, also verwenden Sie Ihr eigenes Risiko.

Wenn Sie die MySpecialWebTempBuildDir Eigenschaft in Ihrer Projektdatei zu ändern, waren legen Sie die folgenden Zeilen in dem _PrepareForBuild Ziel von

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

zu

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

Dann, und es soll sich außer Kraft setzen. Wenn Sie MySpecialWebTempBuildDir nicht festlegen, wird TempBuildDir wie zuvor verwendet.

Wenn Sie ein Update für das Web-Implementierungspaket installieren, werden Ihre Änderungen überschrieben.

1

Eine andere Lösung ist es, Kommentar- und die "Before" Ziel des Web-Deployment-Projekt außer Kraft setzen, wie folgt:

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