2008-09-10 6 views
2

ASP.NET 웹 응용 프로그램을 만들 때 .dll 파일에 웹 사이트 코드 (위대함)가 있지만 웹 사이트에도 .aspx 파일과 친구가 모두 필요하며 올바른 위치에 배치해야합니다. 디렉토리 구조. 각 빌드의 결과로 어떻게이 모든 것을 하나의 디렉토리에 넣을 수 있습니까? 원본 디렉터리에서 올바른 파일을 선택하려고하면 문제가 발생합니다.ASP.NET 웹 응용 프로그램 빌드 출력 - 모든 배포 파일을 포함하려면 어떻게해야합니까?

최종 결과는 xcopy 배포 가능해야합니다.

업데이트 : 내가 알고있는 게시 명령을 수동으로 사용하고 싶지 않습니다. 응용 프로그램에서 필요한 전체 파일 집합을 빌드 출력으로 사용하려면 - MSBuild을 실행하여 한 곳에서 전체 파일 집합을 가져옵니다.

답변

5

하나의 솔루션은 웹 배포 프로젝트 (WDPs), 추가 기능에 비주얼 스튜디오 (와의 MSBuild)를 것으로 보인다 추천 웹 프로젝트를 디렉토리에 빌드하고 선택적으로 어셈블리를 병합하고 web.config 파일을 변경할 수 있습니다. WDP 구축의 결과물은 사이트를 하나의 디렉토리에 배포하는 데 필요한 모든 파일입니다. 웹 배포 프로젝트에 대한

더 많은 정보 : WDP에 대한

  1. Announcement on webdevtools MSDN blog 2008
  2. ScottGu introduction to WDP 2005

이 솔루션의 유일한 단점은있는 추가 기능에 대한 요구 사항에서 사용할 수 있어야합니다 빌드 머신. 그래도 지금은 충분히 좋습니다!

+0

이것은 우리가 사용자를 위해 웹 응용 프로그램/사이트의 릴리스 또는 테스트 복사본을 준비하는 데 사용하는 것입니다. – icelava

0

솔루션 탐색기에서 웹 사이트를 마우스 오른쪽 단추로 클릭하고 '웹 사이트 게시'를 클릭 해 보았습니까?

+0

그렇습니다. 웹 사이트를 수동 단계로 게시 할 수 있지만 나머지 솔루션 빌드 결과가있는 디렉토리에 배치 항목을 배치하는 솔루션을 빌드 한 결과가 필요합니다. 이것은 또한 빌드 머신에서 msbuild를 실행하면 원하는 것을 얻을 수 있음을 의미합니다. –

+0

자동 빌드 스크립트가 필요한 경우 질문을 업데이트해야합니다. – GEOCHET

+0

완료되었으므로 이제 충분히 명확합니다. –

3

ASP.NET에는 이 없습니다. 사이트에 xcopy 배포가 있습니다. IIS에 가상 디렉터리/응용 프로그램이 있는지 여부에 따라 다릅니다. 그러나 일단 가상 디렉터리가 생성되면 xcopy를 사용하여 업데이트 할 수 있습니다.

+0

맞아요. 그리고 모든 파일이 올바른 위치에 있다는 것을 전제로 웹 사이트를 설치하는 powershell 스크립트가 있습니다. 웹 사이트를 업데이트하려면 모든 파일이 다시 필요하며 xcopy를 배포 할 수 있습니다. –

+0

사이트를 업데이트 할 때 VS를 통해 사이트를 게시하고 스크립트를 실행하는 것의 차이점은 무엇입니까? – GEOCHET

+0

회사 인트라넷 외부에서 사용되는 웹 사이트를 개발 중입니다. 즉, 사이트를 고객에게 가져 와서 거기에 설치하거나 패키지로 준비해야합니다. 또한 빌드 서버에서 사이트의 공식 빌드를 설치하려고합니다. –

1

사용자는 Publish Web site을 사용할 수 있습니다. 배포를 자동화하려면 일부 script을 사용해야합니다.

0

빌드 -> 게시

과정을 안내하는 대화 상자가 나타납니다.

업데이트에서 설명하는 자동화 된 건물에 대한
0

, 나는 당신이 MSBuild에보고 CruiseControl.NET

+0

안녕하세요, Rich 씨, 저는 이미 프로젝트를 빌드하기 위해 MSBuild를 사용하고 있습니다. 이것은 CCNet과 같은 내부 시스템에 의한 모든 체크인시 트리거됩니다. 문제는 프로젝트의 어셈블리 만 출력 디렉토리에 배치된다는 것입니다. - .aspx 파일이나 기타 콘텐츠가 없습니다. 콘텐츠도 필요합니다. –

1

.net 프레임 워크 디렉토리에서 aspnet_compiler.exe를 사용해 보셨나요? 웹 응용 프로그램이나 웹 사이트의 "배포 준비"버전을 만들 수 있다고 확신합니다.

+0

고마워요. 민. 시도해 볼게. –

1

MSBuild의 _CopyWebApplication 타겟은 사용자가 필요로하는 것을 정확히 수행합니다. 잡는 방법은 주 어셈블리 만 bin 폴더에 복사되므로 bin 폴더의 다른 파일도 복사해야하는 이유입니다.

이 게시물의 일부로 샘플 스크립트를 게시하려했지만 시도 할 수 없었습니다.

제 블로그에서이 도구를 사용하여 필요한 것과 비슷한 MSBuild 스크립트를 만드는 방법을 설명하는 article을보십시오.

0

얼마나 복잡한 솔루션이 필요한지에 따라 스크립트와 젠킨스를 사용할 수 있습니다. IIS에 배포하기 위해 Jenkins와 MSBUild를 함께 사용할 수 있습니다. 젠킨스 (Jenkins)를 사용하면 나중에 다른 도구를 사용하여 쉽게 연결할 수 있습니다. 그러나 빌드를 원하는 경우 MSDeploy를 사용하는 모든 빌드를 실행하는 jenins 스크립트를 사용하면 효과적입니다.

이것은 내가 그것을 어떻게, 당신에게 느낌을 제공하는 것입니다 :

Sonarqube는 통계를 얻기 위해 갈 리오, 헌병,의 FxCop, Stylecop, NDepths 및 PartCover를 사용하며,이 모든 꽤 정직 SonarQube이 작업을 수행하기 때문에입니다 많은 구성없이 자동으로.

젠킨스의 마녀가 있으며 Sonar 메트릭과 IIS에 자동으로 배포하기위한 다른 작업을 수행합니다. 내 MSBuild 및 URL, 패스 및 사용자를 호출하는 간단한 스크립트 한 줄을 사용합니다.

그리고 Sonarqube

, 내 프로젝트에 대한 모든 통계. 이 간단한 MVC4 응용 프로그램입니다,하지만 작동 위대한! :

당신은 내가 좋은 가이드를 제공 할 수 있습니다 자세한 내용을 원하는 경우에 .

이 전체 설치는 MSBuild를 사용하므로 앱을 빌드하고 배포하십시오.