2011-10-21 5 views
0

NAnt를 통해 MSI 빌딩을 가져 오는 작업이 할당되었습니다. NAntContrib 또는 WiX를 사용할 것입니다.하지만이 티켓에 대한 시간은 저에게 새로운 빌드 기술을 연구 할 여유가 없습니다. 이것은 NAnt로 처음으로 작업 한 것입니다.NAnt를 통한 MSI 빌드 빌드

우리가 가진 현재의 솔루션은 80 개 프로젝트, 6 개 서비스 (자체 MSI 설치 프로젝트 포함) 및 소수의 웹 사이트입니다.

빌드 스크립트는 솔루션을 먼저 빌드 한 다음 구축 된 모든 라이브러리, 파일, zip, configs를 특정 위치에 복사하기 시작하므로 배포가 간단합니다. 유일한 문제는 MSI 파일을 빌드하지 않는다는 것입니다.

빌드 상자에는 Visual Studio가 설치되어 있습니다. NET을 빠르게 둘러보고 VS가 설치된 경우 deven.com을 실행하면 MSI 파일을 빌드 할 수 있다는 것을 알았습니다.

빌드되는 솔루션에는 서비스의 설치 프로젝트가 포함되어 있지만 생성되는 MSI는 없습니다. . 특정 설정/명령 줄 인수가이 작업을 수행하려면 전달해야합니까?

솔루션을 구성하는 XML은 다음과 같습니다.

$의 builtype는 "/ 빌드"

<target name="BuildOnly" depends="ConfigureBuild"> 
    <if test="${property::exists('Distribution') and Distribution == 'True'}" > 
    <call target="ConfigureBuild.Release"/> 
</if> 

<call target="StopServices"/> 
<call target="CleanSUOFiles"/> 
<!--<call target="BuildEnterpriseLibrary" />--> 
<property name="build.dir" value="${directory::get-current-directory()}"/> 

<echo message="######### ${buildtype} ${StandardProjectTarget}"/> 

<exec program="${deven.com}" workingdir="${build.dir}" failonerror="true" commandline="&quot;BC_HM.sln&quot; ${buildtype} ${StandardProjectTarget}"/> 

<call target="BuildSchematronFiles"/> 
</target> 

감사합니다.

답변

1

NAnt는 빌드 도구이며 어떤 방식 으로든 설치 패키지와 관련이 없습니다. 프로젝트를 빌드하고, 자체적으로 파일을 생성하지 않습니다. 따라서 MSI 패키지를 생성하는 프로젝트가 필요합니다.

여러 가지 방법으로 만들 수 있습니다

  • 가 있습니다은 NAnt

을 지원하는 commercial setup authoring tool을 사용하십시오 Visual Studio setup project

  • WiX
  • 같은 무료 설치 저작 도구를 사용하여 사용 설치 패키지를 만드는 것은 쉬운 일이 아닙니다. 따라서 하나를 선택하기 전에 모든 설정 제작 도구를 분석하십시오.

  • +0

    우리는 devenv.com을 호출하여 설치 프로그램을 빌드합니다. 네, 최선은 아니지만 시간 제한이있어 티켓을 바꾸지 않을 것입니다. 더 나은 빌드 박스로 옮겨 크루즈 컨트롤을 제거하면 더 나아질 것입니다. 그러나 devenv는 msi를 구축하지 않고 있습니다. –

    +0

    devenv.com은 설치 패키지가 아닌 Visual Studio 프로젝트를 빌드합니다. 설치자는 자동으로 생성되지 않습니다. 설치 프로그램을 만들려면 설치 프로젝트를 만들어 빌드해야합니다. 설치 프로젝트가 있습니까? 아니면 무작위로 설치 프로그램을 생성하기를 희망하는 프로젝트를 만들고 있습니까? –

    +0

    이미 설치 프로그램 패키지, 스크립트 및 모든 설정이 필요합니다. 그러나 NANT를 통해 devenv.com을 실행해도 빌드되지 않습니다. 나는 주변에서 길을 찾았지만 그것이 우리의 환경에서 작동 하는지를 볼 필요가 있다고 생각합니다. –

    관련 문제