2017-05-03 129 views
0

我正在尝试使perMachine安装程序能够在每个用户的PersonalFolder和LocalAppDataFolder中创建文件和文件夹。我总是收到警告消息“warning LGHT1076:ICE91:...”,如下所示。当我以管理员身份进行安装时,即使出现警告,也会创建文件和文件夹,但是当我以标准用户身份尝试安装程序时,用户配置文件中不会创建任何文件和文件夹。什么可能是解决方案?pericachine安装程序中的ICE91 Wix


<Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="ProgramFilesFolder"> 
      <Directory Id="PFInstallDir" Name="Example"> 
       <Component Id="ApplicationFiles" Guid="12345678-1234-1234-1234-222222222222"> 
        <File Id="ApplicationFile1" Source="notepad.exe"/> 
       </Component> 
      </Directory> 
     </Directory> 

     <Directory Id="CommonFilesFolder"> 
      <Directory Id="CFInstallDir" Name="Example"> 
       <Component Id="CommonApplicationFiles" Guid="12345678-1234-1234-1234-222222222223"> 
        <File Id="ApplicationFile2" Source="notepad.exe"/> 
       </Component> 
      </Directory> 
     </Directory> 

     <Directory Id="CommonAppDataFolder"> 
      <Directory Id="CAInstallDir" Name="Example"> 
       <Component Id="CommonAppDataApplicationFiles" Guid="12345678-1234-1234-1234-222222222224"> 
        <File Id="ApplicationFile3" Source="notepad.exe"/> 
       </Component> 
      </Directory> 
     </Directory> 

     <Directory Id="PersonalFolder"> 
      <Directory Id="InstallDirPersonal" Name="ExampleDocs"> 
       <Component Id="ApplicationPersonalFiles" Guid="12345678-1234-1234-1234-222222222225"> 
        <CreateFolder /> 
        <RemoveFolder Id="RemoveMyExampleDir1" On="uninstall" Directory="InstallDirPersonal"/> 
        <RegistryKey Root="HKCU" Key="Software\MyCompany\Documents"> 
         <RegistryValue Name="MainExe" Value="1" KeyPath="yes" Type="integer" /> 
        </RegistryKey> 
        <File Id="Notepad.MyExe" 
         Source="notepad.exe" DiskId="1" Checksum="yes"> 
        </File> 
       </Component> 
      </Directory> 
     </Directory>    

     <Directory Id="LocalAppDataFolder" Name="AppData"> 
      <Directory Id="InstallDirAppDataPersonal" Name="ExampleLocals"> 
       <Component Id="ApplicationPersonalDataFiles" Guid="12345678-1234-1234-1234-222222222226"> 
        <CreateFolder /> 
        <RemoveFolder Id="RemoveMyExampleDir" On="uninstall" Directory="InstallDirAppDataPersonal"/> 
        <RegistryKey Root="HKCU" Key="Software\MyCompany\Example"> 
         <RegistryValue Name="MainExe" Value="1" KeyPath="yes" Type="integer" /> 
        </RegistryKey> 
        <File Id="Notepad.MyExe1" 
         Source="notepad.exe" DiskId="1" Checksum="yes"> 
        </File> 
       </Component> 
      </Directory> 
     </Directory> 
    </Directory> 

    <Feature Id="DefaultFeature" Level="1"> 
     <ComponentRef Id="ApplicationFiles"/> 
     <ComponentRef Id="CommonApplicationFiles"/> 
     <ComponentRef Id="CommonAppDataApplicationFiles"/> 
     <ComponentRef Id="ApplicationPersonalDataFiles"/> 
     <ComponentRef Id="ApplicationPersonalFiles"/> 
    </Feature> 

</Product> 

- 建立开始:项目:SetupProjectPerUsrMachine,配置:调试86 -

警告LGHT1076:ICE91:文件“记事本。 MyExe'将被安装到每个用户目录'InstallDirPersonal',它不会基于A而变化LLUSERS值。即使需要每台机器安装,该文件也不会被复制到每个用户的配置文件中。

警告LGHT1076:ICE91:文件'Notepad.MyExe1'将安装到每个用户目录'InstallDirAppDataPersonal',该值不会根据ALLUSERS值而变化。即使需要每台机器安装,该文件也不会被复制到每个用户的配置文件中。

回答

0

问题解决了! http://www.installworld.com/index.php?option=com_content&do_pdf=1&id=146

“如果资源必须被复制到每个用户的配置文件,然后你的包来完成添加功能。要做到这一点,添加当前用户的注册表项(即,只是一个虚拟的注册表项),使这个注册表键是包含资源的组件的关键路径,这意味着资源将作为MSI自我修复机制的一部分复制到下一个用户的配置文件中,前提是产品存在广告入口点。“

http://blog.bittercoder.com/2007/02/28/wix-shortcuts/

<Component Id="StandAloneApplication" Guid="C8D5DB05-2D68-40e8-88D1-EF5BEA18DBE1"> 
    <File Id="SomeCompanySomeProductHostApp" 
     Name="SomeCompany.SomeProduct.HostApp.exe" 
     DiskId="1" 
     Source="....buildSomeCompany.SomeProduct.HostApp.exe" 
     Vital="yes"> 

    <Shortcut Advertise="yes" 
       Id="SomeCompanySomeProductHostAppShortcut" 
       Directory="ProgramMenuDir" 
       Name="My Product" 
       WorkingDirectory="INSTALLDIR" 
       Description="SomeProduct Application" 
       Icon="HostAppShortcutIcon.exe"> 

     <Icon Id="HostAppShortcutIcon.exe" 
      SourceFile="....buildSomeCompany.SomeProduct.HostApp.exe" /> 

    </Shortcut> 
    </File> 
</Component>