0

デフォルトのインストール パスをユーザーのホーム ディレクトリ/ProductName に変更しようとしています。

以下は私のコードです(コード全体ではありません)

<Package InstallerVersion="200" Compressed="yes" InstallScope="perUser" Description="desc" Comments="View Violations in APD" InstallPrivileges="elevated"/>

<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER"/>
<Property Id="ENVIRONMENT" Secure="yes" />
<UIRef Id="WixUI_InstallDir" />
<UIRef Id="WixUI_ErrorProgressText" />

<Fragment>
<DirectoryRef Id="INSTALLFOLDER">
  <Component Id="InstallScripts"  Guid="someGUID">        
    <File Id="file1.il" Source="$(var.ScriptsFolder)\file1.il"/>
    <File Id="file2.il" Source="$(var.ScriptsFolder)\file2.il"/>
  </Component>
</DirectoryRef>    
<Directory Id="TARGETDIR" Name="SourceDir">
    <Directory Id="ProgramFilesFolder">
        <Directory Id="ProgramMenuSubfolder" Name="CompanyName">
          <Directory Id="ScriptsFolder" Name="SoftwareName" />
          <Directory Id="INSTALLFOLDER" Name="SoftwareName" />

            <Component Id="Registry_FriendlyName">
                <RegistryValue Id="RegKey_FriendlyName" Root="HKCU"
                       Key="Software\Microsoft\Office\Excel\AddIns\AddIn1"
                       Name="FriendlyName"
                       Value="AddIn1"
                       Type="string" KeyPath="yes" />
            </Component>            
            <Component Id="Registry_Manifest" Guid="SomeGUID">
                <RegistryKey Root="HKCU" Key="Software\Microsoft\Office\Excel\AddIns\AddIn1" Action="create">
                    <RegistryValue Id="RegKey_Manifest" Name="Manifest" Type="string" Value="[INSTALLFOLDER]ViolationsAddIn.vsto|vstolocal" KeyPath="yes" />              
                </RegistryKey>            
            </Component>
            <Directory Id="GAC" Name="GAC">            
                <Component Id="dll_gac_Component" DiskId="1" Guid="SomeGUID">
                  <File Id="Core_dll_gac" KeyPath="yes"
                        Name="Core.dll" Source="$(var.variable1)"  Assembly=".net"></File>
                </Component>
            </Directory>
        </Directory>
    </Directory>
</Directory>

上記のコードが表示されている場合..現在、デフォルトのパスはInstallFolderであり、SoftwareNameフォルダーです。この InstalFolder をさらにいくつかの場所で使用して、いくつかのファイル (DirectoryRef) をコピーしたり、レジストリ値を追加したりしています。ここで、デフォルトのインストール パスをユーザーのホーム ディレクトリに設定し、ユーザーはこれらの機能を壊さずに他のパスに変更できます。私を助けてください。

どんな助けでも大歓迎です。

ありがとう

4

1 に答える 1

2

に加えてProgramFilesFolder、多くの標準システム フォルダ プロパティがあります。

指定したフォルダー (ユーザーのプロファイル フォルダー) は、Windows インストーラーで定義されたフォルダーではありません。その理由は、オペレーティング システムの設計者が各オペレーティング システム リリースのプロファイル レイアウトを作成する際に、多くの目標を念頭に置いているためです。そのうちの 1 つは、ユーザーがドメイン (ローミング プロファイル) 内の別のコンピューターにログインするときに、コンピューターからコンピューターにデータをコピーする必要があることを予期することです。また、他のデータがコピーされないようにする必要があります。

この設計でソフトウェアをインストールするには、ローミングが必要かどうかを確認してから、インストール フォルダーを適切に選択する必要があります。と を見てAppDataFolderくださいLocalAppDataFolder

于 2013-07-23T02:56:49.157 に答える