2011-01-12 3 views

답변

4

C : \ Program Files \ MSBuild \ Microsoft \ WebDeployment \ v9.0 또는 v10.0 디렉터리는 TempBuildDir 속성이 _PrepareForBuild 대상에 정의 된 Microsoft.WebDeployment.targets 파일입니다.

CreateProperty 작업을 사용하여 TempBuildDir을 설정하므로 속성이 이미 존재하더라도 항상 하드 코딩 된 값으로 설정됩니다. 이것은 다른 누군가를 위해 TempBuildDir 속성을 사용하고 빌드를 엉망으로 만드는 누군가의 문제를 제거하는 것일 수 있습니다.

다른 임시 디렉터리를 사용하려면 Microsoft.WebDeployment.targets 파일을 변경해야합니다.

경고 : 다음은 사용자가 제어 할 수없는 파일을 변경하기 때문에 위험은 사용자 자신의 책임입니다. 당신이

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

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

에서 _PrepareForBuild 대상에 다음 줄을 변경한다면

그런 다음 프로젝트 파일에 MySpecialWebTempBuildDir 속성을 설정하고 그것을 오버라이드 (override) 할 필요가 있습니다. 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>