2014-01-20 2 views
0

wix IniFile 요소를 사용하여 설치시 ini 파일을 편집하고 있습니다.제거시 Wix IniFile 오류

<?xml version="1.0"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
<Fragment> 
<Property Id="miktex_config_path" Hidden="yes"/> 
<SetProperty Id="miktex_config_path" Value="[INSTALLLOCATION]miktex\miktex\config"  After="InstallFiles" Sequence="execute">Not Installed</SetProperty> 
<DirectoryRef Id="dirC060208F28327102C690BFF33C18B6C4"> 
    <Component Id="miktex_config_file" Guid="4B9400C2-7EEF-4233-881D-5DFE6F80BB5B"> 
    <CreateFolder /> 
    <IniFile Directory="miktex_config_path" Id="common_install_path" Name="miktexstartup.ini" Action="addLine" Key="CommonInstall" Value="[INSTALLLOCATION]miktex" Section="Paths"/> 
    <IniFile Directory="miktex_config_path" Id="common_data_path" Name="miktexstartup.ini" Action="addLine" Key="CommonData" Value="[CommonAppDataFolder]miktex_data" Section="Paths"/> 
    <Condition><![CDATA[Not Installed]]></Condition> 
    </Component> 
    </DirectoryRef> 
</Fragment> 
</Wix> 

왜 제거 계정에 내 조건 요소를 걸립니까 다음과 같이 INI 편집과

Начало действия 12:37:47: RemoveIniValues. 
MSI (s) (7C:BC) [12:37:47:264]: Note: 1: 2343 
DEBUG: Error 2343: Specified path is empty. 

내 WXS입니다 : 내가 제거하려고 할 때 오류 2343 얻을?

제거하는 동안 설치 프로그램이 ini 파일 편집을 무시하도록 강제 할 수 있습니까?

답변

0

조건은 구성 요소에 대한 것이지만 실행중인 동작은 RemoveIniValue입니다. 다음과 같이 InstallExecuteSequence를 재정 의하여이 작업을 surpress 수 있습니다

<InstallExecuteSequence> 
    <RemoveIniValues Suppress="yes" /> 
</InstallExecuteSequence> 
+0

위대한 작품입니다. 감사합니다! – Ujin

0

그것은 당신이 추구하는 작업에 따라 달라집니다. INI 값 제거를 막아야하는 경우 InstallExecuteSequence에서 RemoveIniValues를 억제하면 David Martin이 제안한대로 갈 수 있습니다. 그러나, 그 억압 (NO MATTER 당신이 그것에 대한 조건으로 넣어), INI 항목을 제거 및 설치 및 제거 (다시, 조건이 작동하지 않습니다, 심지어 제거를 억제하기 위해 조건을 넣으려고하지 마십시오). 그러나 설치 중에 Ini 항목/태그 제거 (제거 작업을 포함한 IniFile 선언)를 허용해야하지만 동시에 제거 중에 나머지 INI 설정이 제거되지 않도록해야하는 경우 유지하는 위치에 구성 요소를 표시하십시오 IniFile 선언을 Permanent = "yes"로 설정하십시오. 이 경우 설치시 INI 설정이 제거되지 않으며 설치시 특정 INI 설정을 제거하는 선언이 작동하며 RemoveIniValues ​​억제 기능을 전혀 잊어 버릴 수 있습니다.

관련 문제