如何使用 WiX 安装程序将位于 "C:/User/public/Abc/HiddenFile.txt" 的文件标记为隐藏?

How to mark a file at "C:/User/public/Abc/HiddenFile.txt" as Hidden using WiX installer?

使用 WiX 安装程序,我在 C:/ProgramFiles/App 文件夹中安装了一个应用程序。除此之外,我想将位于“C:/User/public/Abc/HiddenFile.txt”的随机文件标记为隐藏。

我的代码:

<SetDirectory Id="UserPublicAbcFolder" Value="C:\Users\Public\Abc" />
<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="UserPublicAbcFolder" Name="UserPublicAbcFolder" />
</Directory>

<DirectoryRef Id="UserPublicAbcFolder">
  <Component Id="HiddenFile">
    <File Name="HiddenFile.txt" Hidden="yes" />
  </Component>
</DirectoryRef >

<Feature Id="SomeId" Title="AppName" Level="1">      
  <ComponentRef Id="HiddenFile" />
</Feature>

我收到编译错误“系统找不到文件 'HiddenFile.txt'”。 “HiddenFile.txt”是一个随机文件,始终存在于我的“C:\Users\Public\Abc”文件夹中。 我只想将其标记为隐藏作为安装的一部分。

请帮我实现它。谢谢。

我是使用自定义操作完成的。由于 WiX 允许我们将自定义操作编写为 C# 方法,因此非常方便。

我遵循的步骤:

  1. 创建 WiX CustomAction 项目。
  2. 用 C# 编写一个 Action 方法来更新文件权限。
  3. 在 Product.wxs 中,在“Fragment”元素下创建一个“Binary”元素以指向 .CA.dll.
  4. 然后在“Fragment”下创建一个“CustomAction”元素,指定要调用的Action方法名。
  5. 通过创建“Custom”元素将 CustomAction 插入“InstallExecuteSequence”并为 Before/After 属性指定适当的值。