2017-05-15 11 views
0

私は、パッケージを "ユーザーごとの"アプリケーションとしてインストールする非常に簡単なインストーラをビルドしようとしています。ダイアログは表示されず、常にローカルアプリデータフォルダにインストールされます。それは私を無視している。常にC:\ Program Filesにインストールしてください。WiX - インストーラは私の "perUser"インストールスコープを無視します。どうして?

私はInstallScopeを "perUser"に設定しましたが、インストールディレクトリは "ProgramFilesFolder"としました。ドキュメントは、SHOULDがリダイレクトされるべきであると示唆しているようですが、それは起こっていません。

以下のセットアップファイル...

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Product Id="*" 
     Name="MyApplication" 
     Language="1033" 
     Version="1.0.0" 
     Manufacturer="MyCompany" 
     UpgradeCode="19E4E10A-558C-4D4A-BD2A-D6B8060FB917"> 

    <Package 
      InstallerVersion="500" 
      Compressed="yes" 
      InstallPrivileges="limited" 
      InstallScope="perUser" /> 

    <MajorUpgrade 
      DowngradeErrorMessage="A newer version of MyApplication is already installed." /> 

    <MediaTemplate 
      EmbedCab="yes" /> 

    <Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="ProgramFilesFolder"> 
      <Directory Id="INSTALLDIR" Name="MyCompany MyApplication"> 
       <Directory Id="JreFolder" Name="jre"/> 
       <Directory Id="LibFolder" Name="lib"/> 
      </Directory> 
     </Directory> 
     <Directory Id="ProgramMenuFolder"> 
      <Directory Id="ApplicationProgramsFolder" Name="MyCompany MyApplication"/> 
     </Directory> 
    </Directory> 

    <DirectoryRef Id="INSTALLDIR"> 
     <Component Id="CMP_MyApplication.exe"> 
      <File Id="FILE_MyApplication.exe" Source="MyApplication.exe" KeyPath="yes"/> 
     </Component> 
     <Component Id="CMP_MyApplication.ini"> 
      <File Id="FILE_MyApplication.l4j.ini" Source="MyApplication.l4j.ini" KeyPath="yes"/> 
     </Component> 
    </DirectoryRef> 

    <DirectoryRef Id="ApplicationProgramsFolder"> 
     <Component Id="CMP_StartMenuShortcut" Guid="0B96A876-70FB-4E8E-8D27-B9B1E40C9B4D"> 
      <Shortcut Id="ApplicationStartMenuShortcut" Name="MyCompany MyApplication" Description="MyCompany MyApplication" 
         Target="[#FILE_MyApplication.exe]" WorkingDirectory="INSTALLDIR"/> 

      <RemoveFolder Id="CleanUpShortCut" Directory="ApplicationProgramsFolder" On="uninstall"/> 
      <RegistryValue Root="HKCU" Key="Software\MyCompany\MyApplication" Name="Installed" Type="integer" Value="1" KeyPath="yes" /> 
     </Component> 
    </DirectoryRef> 

    <Feature Id="MainApplication" Title="Main Application" Level="1" > 
     <ComponentGroupRef Id="JreGroup"/> 
     <ComponentGroupRef Id="LibGroup"/> 
     <ComponentRef Id="CMP_MyApplication.exe"/> 
     <ComponentRef Id="CMP_MyApplication.ini"/> 
     <ComponentRef Id="CMP_StartMenuShortcut"/> 
    </Feature> 
    </Product> 
</Wix> 
+0

ユーザーごとにインストールする場合は、 'ProgramFilesFolder'をリダイレクトする必要があります。 – TeaHoney

+0

インストールコンテキストのMSDNドキュメント:https://msdn.microsoft.com/en-us/library/windows/desktop/dd765197(v=vs.85).aspx – David

+0

これはmsdnドキュメントです。これはWIXが動作することを意味するものではありません同じやり方で。たとえば、WIXの書き込みでは、ProgramFilesFolderはCSIDL_PROGRAM_FILESX86に解決されます。これはWIX MSIにも起こります(http://wixtoolset.org/documentation/manual/v3/bundle/bundle_built_in_variables.html) – TeaHoney

答えて

0

あなたが「ProgramFilesFolderの」を使用する理由アプリデータフォルダにインストールすることがわかっている場合は?

これは、あなた(またはあなたのコードを管理する他の人)を混乱させるだけです。代わりに 'AppDataFolder'を使用してみてください。

関連する問題