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,则目标目录设置正确,但 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 之前更改安装路径,则可能会发生这种情况。如果是这种情况,您需要使用不同的自定义操作来设置路径,从而允许 Windows 安装程序收到有关更改的通知并更新子目录。

于 2013-04-21T17:56:15.727 回答