2013-07-10 1 views
0

저는 ASP.NET-MVC3 응용 프로그램을 IIS7 서버에 배포하고 있습니다.VS2010 웹 배포는 특정 확장명을 가진 추가 파일 만 남깁니다.

"대상에 추가 파일 남기기 (삭제하지 않음)"를 선택하면 웹 게시가 정상적으로 작동합니다. 확인란을 선택하지 않으면

, 보통이 오류와 함께 실패가 현재 응용 프로그램에 의해 기록 된대로

Error 65 Web deployment task failed.((2013.07.10. 17:06:09) An error occurred when the request was processed on the remote computer.)

(2013.07.10. 17:06:09) An error occurred when the request was processed on the remote computer.

An error was encountered when processing operation 'Delete File' on 'App_tracelog.svclog'.

The error code was 0x80070020.

The process cannot access 'D:\WebSites\app\Admin\App_tracelog.svclog' because it is being used by another process. 0 0 AdminApp

이 분명 tracelog 삭제할 수 없습니다.

배포시 서버의 모든 파일을 남겨두고 싶지 않기 때문에 처음으로 응용 프로그램을 전환, 배포 및 전환하면 좋은 해결책이 될 것이라고 생각했습니다. 그것은 작동하지만, 나는 그것을 (출판 누르면) 자동으로 할 수 없었습니다. (방법이 있습니까?)

나중에 tracelog를 삭제하는 것은 나쁜 습관이라는 것을 깨달았습니다. 로그는 보존되어야하며, 나중에 액세스하여 읽을 수 있습니다.

내 로그와 내 백업 파일 중 일부를 제외하고 배포 할 폴더의 거의 모든 항목을 삭제하려고합니다. 배포시 강제로 파일에서 해당 폴더를 자동으로 지우는 방법이 있습니까 (확장명은 .tracelog, .bak, .log 등)을 제외하고 무엇입니까?

답변

0

당신은 다음과 같은 방법으로 수행 할 수 있습니다 :

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
<MsDeploySkipRules Include="SkipXMLFiles"> 
    <SkipAction></SkipAction> 
    <ObjectName>filePath</ObjectName> 
    <AbsolutePath>$(_DestinationContentPath)\\*.xml</AbsolutePath> 
    <Apply>Destination</Apply> 
    <XPath></XPath> 
</MsDeploySkipRules> 
</Project> 

:

  • 당신에게 YourWebProjectName.wpp.targets에게 다음과 같은 내용으로 프로젝트 파일을 다음 파일을 생성 그에 따라 YourWebProjectName을 변경하십시오.

    삭제/동기화 할 폴더/파일을보다 세부적으로 제어하는 ​​방법에 대한 자세한 내용은 answer을 참조하십시오.

    NB : VisualStudio는 wpp.targets 파일을 캐시하는 경향이 있으므로 VS를 사용하여 게시를 에스코트하는 경우 수정 한 후에 VS를 다시 시작하는 것이 좋습니다.

관련 문제