2

インストーラーを作成しようとしていますが、オペレーティング システムに応じてインストール ディレクトリを設定する必要があります。私のディレクトリツリー:

<Property Id="TARGETDIR" Value="C:\" />
<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="TARGETDIRECTORY" Name="MyApplication">
    <Directory Id="CONFIG" Name="Config">
      <Directory Id="FOLDER2" Name="Folder2" />
    </Directory>
  </Directory>
</Directory>

c#-custom-action で TARGETDIRECTORY を設定すると、targetdirectory は正しく設定されますが、CONFIG/FOLDER2 には古いリンクしかありません。新しいパスに合わせて強制的に調整するにはどうすればよいですか? それらは TARGETDIRECTORY の子であるため、これを自動的に行う必要があると思います。さらに多くのフォルダーが来るので、CustomAction で自分ですべてを設定したくありません。

ここでログファイルから:

Property(S): FOLDER2 = C:\MyApplication\Config\Folder2\
Property(S): CONFIG = C:\MyApplication\Config\
Property(S): TARGETDIRECTORY = C:\Documents and Settings\MyApplication\
Property(S): TARGETDIR = C:\
4

2 に答える 2

2

SetProperty で問題を解決できます:

<Property Id="TARGETDIRECTORY" Value="C:\Win7\" />
<SetProperty Id="TARGETDIRECTORY" Before="CostFinalize" Value="C:\WinXP\">
  <![CDATA[VersionNT = 501]]>
</SetProperty>
于 2013-04-22T09:16:47.213 に答える
1

これは、CostFinalize の前にインストール パスを変更した場合に発生する可能性があります。この場合、別のカスタム アクションを使用して path を設定する必要があります。これにより、Windows インストーラーに変更が通知され、子ディレクトリが更新されます。

于 2013-04-21T17:56:15.727 に答える