2013-03-26 2 views
3

내가이 VS 2012 년 윅스와 함께 설치 구축을 위해 노력하고있어,하지만 난 추가 "외부"참조는 WIX 프로젝트에 외부 DLL을 추가

내가 설치하려는 일이 내 프로젝트 FirmwareUpload을 드릴 수 없습니다 우리 회사의 프레임 워크를 참조하십시오. 그리고 내 Installer 프로젝트 인 FirmwareUploadSetup. 이 프로젝트의 다른 프로젝트에 대한 참조를 추가하고 XML을 만들었습니다.

<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> 
    <Component Id="MainEXE"> 
    <!-- TODO: Insert files, registry keys, and other resources here. --> 
    <File Source="$(var.FirmwareUpload.TargetPath)"> 
     <Shortcut Id="startmenuFWU10" Directory="ProgramMenuDir" Name="Firmware Upload 1.0" 
       WorkingDirectory="INSTALLDIR" Advertise="yes" /> 
     <Shortcut Id="desktopFWU10" Directory="DesktopFolder" Name="Firmware Upload 1.0" 
       WorkingDirectory="INSTALLDIR" Advertise="yes" /> 
    </File> 

    </Component> 
    <Component Id="AstuFMS"> 
    <File Source="$(var.Astus.FMS.TargetPath)" Name="Astus.FMS.dll" ShortName="AF" /> 
    </Component> 
    <Component Id="AstusServerBusinessLogic"> 
    <File Source="$(var.Astus.Server.BusinessLogic.TargetPath)" Name="Astus.Server.BusinessLogic.dll" 
      ShortName="ASBL" /> 
    </Component> 
    <Component Id="ETL"> 
    <File Source="$(var.ETLElectronique.TargetPath)" /> 
    </Component> 
    <Component Id="ETLBusiness"> 
    <File Source="$(var.ETLElectronique.Business.TargetPath)" Name="ETLElectronique.Business.dll" ShortName="EB" /> 
    </Component> 
    <Component Id="ETLCommon"> 
    <File Source="$(var.ETLElectronique.Common.TargetPath)" Name="ETLElectronique.Common.dll" ShortName="EC" /> 
    </Component> 
    <Component Id="ETLData"> 
    <File Source="$(var.ETLElectronique.Data.TargetPath)" Name="ETLElectronique.Data.dll" ShortName="ED" /> 
    </Component> 
    <Component Id="ETLNet"> 
    <File Source="$(var.ETLElectronique.Net.TargetPath)" Name="ETLElectronique.Net.dll" ShortName="EN" /> 
    </Component> 
    <Component Id="ETLWindows"> 
    <File Source="$(var.ETLElectronique.Windows.TargetPath)" Name="ETLElectronique.Windows.dll" ShortName="EW" /> 
    </Component> 
</ComponentGroup> 

이 작품은 !! 설치 프로그램을 실행할 때이 파일들을 내 디렉토리에 저장합니다. 그러나 소프트웨어를 실행하는 데 필요한 다른 파일이 있습니다 (예 : log4net.dll)

"FirmwareUpload"프로젝트를 컴파일 할 때 log4net.dll (및 기타 여러 파일)을 얻습니다. 그래서 설치를 한 번 실행하려면이 DLL을 설치해야합니다.

수행하여 근무 :

<ComponentGroup Id="DocumentationComponents" Directory="INSTALLFOLDER" Source="C:\fms\hotfix\v42x\V6\Utilitaire\FirmwareUpload\FirmwareUpload\bin\Debug"> 
     <Component Id="log4net"> 
     <File Name="log4net.dll" /> 
     </Component> 
     <Component Id="Astus.Device.Configuration"> 
     <File Name="Astus.Device.Configuration.dll" /> 
     </Component> 
     <Component Id="Astus.Device"> 
     <File Name="Astus.Device.dll" /> 
     </Component> 
     <Component Id="Microsoft.Practices.EnterpriseLibrary.Common"> 
     <File Name="Microsoft.Practices.EnterpriseLibrary.Common.dll" /> 
     </Component> 
     <Component Id="Microsoft.Practices.EnterpriseLibrary.Data"> 
     <File Name="Microsoft.Practices.EnterpriseLibrary.Data.dll" /> 
     </Component> 
     <Component Id="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling"> 
     <File Name="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.dll" /> 
     </Component> 
     <Component Id="Microsoft.Practices.ObjectBuilder"> 
     <File Name="Microsoft.Practices.ObjectBuilder.dll" /> 
     </Component> 
    </ComponentGroup> 

을하지만 덜 "하드"방법은 무엇입니까?

답변

5

heat ("수확 도구")을 사용하여 폴더를 스캔하고 해당 폴더에 파일을 포함시키는 데 필요한 XML을 생성 할 수 있습니다.

은 XML로 이것을 달성하기 위해 비슷한 방법이,

+0

내가 명령 줄 윅스 배울하지 않았다 http://wix.sourceforge.net/manual-wix3/heat.htm를 참조하십시오? –

+1

아니요, xml은 명시 적으로 모든 파일을 명시 적으로 나열해야합니다 (알고있는 한). 열은 xml을 생성하기위한 사전 구축 단계로 추가 할 수있는 간단한 도구입니다. –

+0

실마리, 나는 명령 행 도구에 대해 더 많이 읽겠다. 어려운 명령 행은 MSI를 생성하는 "다른 도구"의 일종이다. –

관련 문제