2016-08-23 2 views
1

WiX를 사용하여 설치 프로그램을 만들려고합니다. DLL을 .msi 패키지에 포함 시키려면 두 가지 다른 방법을 시도해보십시오.WiX 설치 관리자가 msi에 DLL을 포함합니다.

<DirectoryRef Id="SETTINGSDIR"> 
    <Component Id="CMP_CopySettings" Guid="AC7D1AA1-798B-48F5-AF8D-188B1050D47C" KeyPath="yes"> 
    <CreateFolder /> 
    <File Id="DBA.bat" Source="$(var.SolutionDir)\scr\A\A.WindowsService\bin\$(var.Configuration)\Settings\A_DB clear.bat" Checksum="yes"/> 
    <File Id="AConfiguration.xml" Source="$(var.SolutionDir)\scr\A\A.WindowsService\bin\$(var.Configuration)\Settings\AConfiguration.xml" Checksum="yes"/> 
    <File Id="ADB.CE.DEFAULT.sdf" Source="$(var.SolutionDir)\scr\A\A.WindowsService\bin\$(var.Configuration)\Settings\ADB.CE.DEFAULT.sdf" Checksum="yes"/> 
    <File Id="ADB.CE.sdf" Source="$(var.SolutionDir)\scr\A\A.WindowsService\bin\$(var.Configuration)\Settings\A.CE.sdf" Checksum="yes"/> 
    <RemoveFile Id="RemoveFileSettings" Name="*" On="uninstall"/> 
    </Component> 
</DirectoryRef> 

그러나 쉽게 이해할 수있는, 아주 열심히 각 DLL에 대한 XML 노드 (각각에 대해 200 + DLL을 6 개 프로젝트를) 쓸 것 : 이들 중 하나입니다.

은 두 번째는 빠르지 만 윅스 그냥 내 두 번째 방법으로 추가 할 수있는 빠른 해결책이 있습니까 MSI 패키지

<DirectoryRef Id="SETTINGSDIR"> 
    <Component Id="CMP_CopySettings" Guid="AC7D1AA1-798B-48F5-AF8D-188B1050D47C" KeyPath="yes"> 
    <CreateFolder /> 
    <CopyFile Id="SettingsID" SourceProperty="SETTINGSSOURCEDIRECTORY" DestinationDirectory="SETTINGSDIR" SourceName="*" /> 
    <RemoveFile Id="RemoveFileSettings" Name="*" On="uninstall"/> 
    </Component> 
</DirectoryRef> 

에 대신 복사 DLL이 폴더에 대한 링크를 만들거나 나는에있다 heat.exe 도구를 사용 하시겠습니까? 이 경우 사용법을 설명해 주시겠습니까? 공식 문서는 매우 가난

+0

또한 FYI에서는 구성 요소에 또는 태그가 필요하지 않습니다. 또 다른 가장 좋은 방법은 서로 밀접하게 결합되어 있지 않는 한 설치 프로그램의 모든 파일에 대해 별도의 구성 요소를 갖는 것입니다. 두 번째 접근법은 그 디렉토리에서 ** 모든 것을 ** 제거하기 때문에 좋은 생각이 아닙니다. 파일조차도 설치 프로그램이 절대적으로 제거 할 권한이 없습니다 (사용자가 어떤 이유로 든 제거 할 수있는 경우). 바라기를 열 도구는 매우 도움이됩니다. SDK 설치 프로그램에 3000 개 이상의 파일 디렉토리를 수확하는데 사용하므로 매우 유용합니다. –

답변

5

당신이 원하는 것은 당신을 위해이 작업을 수행 할 수있는 수확 도구입니다 감사합니다. 다행히 이미 존재 : 특정 경우 Heat

명령 heat dir ".\My Files" -gg -g1 -directoryid "YourDirectoryId" -sfrag -template:fragment -out directory.wxs를 사용하지만 당신이 등을 건너 뛰려는 수확 당신의 필요, 정확히 무엇인지 확인하시기 바랍니다 ...

주주는 -t <xsl> 스위치 당신은 최종 결과를 어떻게 조정할 것인지에 대한 완전한 통제권을가집니다.

관련 문제