열이있어 설치 프로그램에서 구성 요소로 필요한 파일을 수확하고이를 완벽하게 작동하는 별도의 wxs 파일에 작성합니다. 생성 된 파일의Wix - ICE 64 오류 : 외부 구성 요소 그룹 연결
예 :
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*"
Name="SETUP TEST 1.0"
Language="1031"
Version="1.0.0.0"
Manufacturer="bla"
UpgradeCode="ID">
<Package Id="*"
Keywords="Installer"
InstallerVersion="300"
Compressed="yes"
Languages='1031'
SummaryCodepage='1252'
Manufacturer="bla"
Description="Setup"
Comments="bla"
InstallScope="perMachine"/>
<Media Id="1" Cabinet="myapplication.cab" EmbedCab="yes" />
<Directory Id="TARGETDIR" Name="SourceDir" >
<Directory Id="LocalAppDataFolder" >
<Directory Id="AppData_dir_ref" Name="Test" />
</Directory>
</Directory>
<Feature Id="F.Core" Title="bla" Level="1">
<Feature Id="F.Data">
<ComponentGroupRef Id="AppData_ComponentGroupId" />
</Feature>
</Feature>
</Product>
</Wix>
불행하게도 내가 가진 ICE64 오류 :
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="AppData_dir_ref">
<Directory Id="GUID" Name="C" />
<Directory Id="GUID" Name="OLD" />
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="AppData_ComponentGroupId">
<Component Id="GUID" Directory="GUID" Guid="{GUID}">
<File Id="GUID" KeyPath="yes" Source="$(var.test)\C" />
</Component> ...
... 등등 .... 이제 난 내 SetupMain에서 사용
모든 구성 요소 및 디렉토리 :ICE64 오류 : 디 목사관 XX는 사용자 프로필에 있지만 RemoveFile 테이블 ICE64 오류에 나열되지 않은 : XX enter code here
은 사용자에게 설치 구성 요소는 ... 그것의 키 경로가 아닌 파일로 HKCU 아래에있는 레지스트리 키를 등록해야합니다 프로필
어떻게 해결할 수 있습니까? 나는 인터넷에서 잠시 동안 수색했지만 힌트를 찾을 수 없었다. 정말 간단하고 기본적으로 내 메인에서 정의하는 것을 잊어 버린 것 같습니다. 필자의 목표는 설치하는 동안 열 명령을 사용하여 파일 빌드에 정의 된 디렉토리 구조를 복사하여 설치 제거시 삭제하는 간단한 설치 프로그램을 작성하는 것입니다.
UPDATE 1 : 작은 업데이트를 내가 RemoveFolder 및 RegistryValue 태그 사용하여 아래의 답변의 도움으로 오류 해결 방법 :
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="AppData_dir_ref">
<Directory Id="dir1" Name="C" />
<Directory Id="dir2" Name="OLD" />
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="Cg.R">
<Component Id="test" Directory="Data" Guid="...">
<RemoveFolder Id="Data" On="uninstall" Directory="AppData_dir_ref"/>
<RemoveFolder Id="Rf.1" On="uninstall" Directory="C"/>
<RemoveFolder Id="Rf.2" On="uninstall" Directory="OLD"/>
<RegistryValue Root="HKCU" Key="Software\...\..." Name="installed" Type="integer" Value="1" KeyPath="yes"/>
</Component>
</ComponentGroup>
</Fragment>
<Fragment>
<ComponentGroup Id="Cg.D">
<Component Id="cmp5" Directory="dirC23" Guid="...">
<File Id="fil2" Source="Bla\...\...\...xml" />
<RemoveFolder Id="Rf.b" On="uninstall" Directory="dirC23"/>
<RegistryValue Root="HKCU" Key="Software\...\..." Name="installed" Type="integer" Value="1" KeyPath="yes"/>
</Component>
... 을 나는 그것의 최선 알고하지는 그렇게하는 방법이지만 지금은 그 일을하는 것입니다. heat.exe 자동화과 함께 사용하면 개선 제안이나 모범 사례가 좋습니다.
ICE91 : 파일 X가 나던이 ALLUSERS 값에 따라 달라 Y 사용자 별 디렉토리에 설치됩니다
마지막 점은 내가 여전히 경고를 가지고있다. 이 파일은 컴퓨터 별 설치가 필요한 경우에도 사용자 프로필에 복사되지 않습니다.
나는이 경고가 무해하다고 읽었습니다. 그러나 어쨌든 미래에 언젠가는 경고를 풀 수있는 이유를 이해하는 것이 좋을 것입니다.
감사 :
여기 윅스 컴파일 테스트하도록 설정해야하지 않지만 대략 당신이 필요로하는 모형입니다. 당신의 대답은 내가 윅스를 처음 접했을 때 도움이됩니다. 아직도 몇 가지 질문이 남았습니다. 사용자 프로필에 설치하고 있는지 어떻게 알 수 있습니까? 설치하는 폴더에 따라 다릅니 까? 그리고 공통 머신 프로파일 (비 사용자 프로파일)에 설치하는 경우 removefolder 및 HKCU 레지스트리 키 경로가 필요하지 않습니까? – Dave
예, 사용자 프로필은 일반적으로 ** C : \ Users ** 계층 구조 아래의 모든 폴더입니다. 여기에 추가하는 모든 폴더에는 고유 한 RemoveFolder 항목이 있어야합니다. 그리고 기계 위치별로 RemoveFolder 항목을 추가 할 필요가 없습니다. –
다시 한 번 감사드립니다. 열을 사용할 때 removefolder 태그와 registryValue 태그를 자동으로 추가 할 수 있습니까? 아니면 모두 자체적으로 수행해야합니까? – Dave