폴더에 복사해야하는 "Sample"폴더의 일부 파일을 포함하는 msi
설치 파일을 만들었습니다. 아무도 이것을하는 방법을 제안합니까? 이 같은설치시 설치 위치에서 wix의 다른 위치로 파일 복사
답변
뭔가 :
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="MyVendor" Name="MyVendor">
<Directory Id="INSTALLDIR" Name="MyDir">
<Component Id="MyFileId" Guid="...G1...">
<File Id="MyFileId" Name="MyFile" Source="...blabla...\MyFile" KeyPath="yes" >
</File>
</Component>
<DirectoryRef Id="TARGETDIR">
<Component Id="MyFileCopyId" Guid="...G2...">
<RemoveFile Id="MyFileRemoveId" Name="MyFile" On="install" Directory="MyCopyDir" />
<CopyFile Id="MyFileCopyId" FileId="MyFileId" DestinationDirectory="MyCopyDir" />
</Component>
<Feature Id="MyFeature" ... >
<ComponentRef Id="MyFileId" />
<ComponentRef Id="MyFileCopyId" />
중요한 XML 요소는 CopyFile 수있다. 첫 번째 복사본 (다른 ID, 지침, 물론 ...)의 복사본 인 새 구성 요소를 만들어야합니다. 두 구성 요소 모두 기능에서 선언해야합니다.
CopyFile 요소는 당신의 친구입니다. 복사해야 할 횟수에 따라 원래 File 요소 아래에 여러 번 중첩시킬 수 있습니다. 올바른 대상 폴더를 놓고 Windows Installer가 나머지 작업을하도록하십시오. 회신에 대한
나는 임시 폴더 또는 그런 일에 모든 파일을 복사 할 * 그렇게 할 수 없습니다. – Sukhjeevan
예, 와일드 카드를 지정하고 폴더의 모든 파일을 대상에 복사 할 수 있습니다. 그리고 이것은 전체 폴더에 대해 하나의 CopyFile 요소가 필요하기 때문에 아마도 꽤 우아 할 것입니다. 그러나이 폴더에 대한 * .wxs 파일을 생성하는 경우 XSL 변환을 출력에 적용하여 수확 된 각 파일에 CopyFile을 추가하는 것을 고려할 수 있습니다. 그러나 그것은 이전 방법이 당신을 위해 일한다면, 대안입니다. :) –
감사합니다. Yan! 그게 정말로 도움이됩니다. – Sukhjeevan
안녕하세요 덕분에, 난 내가되는 DestinationDirectory는 = "% TEMP %의"다음 임시 folder.3에서 복사 MYFILE 것) .Can 내가 세트 .If 일부 의심의 여지 1) 뭐야이 Guid.2의 값이 될 것이다)가 File 요소의 Source = "myfile"속성. – Sukhjeevan
Guid2는 단순한 새로운 GUID입니다. 그것은 아무 관계도 없지만 wix/msi에 필요합니다. "temp"폴더는 샘플의 MyCopyDir입니다. 소스는 기본적으로 로컬 경로이기 때문에 원하는 것을 넣을 수 있습니다. 그러나 wix 파일에 이미 해당 부분 설정이 있어야합니다. 복사본과 관련이 없습니다. –
당신이 DestinationDirectory = "MyCopyDir"을 설정하면 myfile이 ~ [user]/LOCALS ~ 1 \ Temp 폴더에 복사됩니다. 나는 다른 것을 할 필요가 없다. – Sukhjeevan