【问题标题】:64-bit system copies dll files into SysWOW64 instead of system32 using WiX installer [SystemFolder] property [closed]64位系统使用WiX安装程序[SystemFolder]属性将dll文件复制到SysWOW64而不是system32 [关闭]
【发布时间】:2018-12-21 18:00:54
【问题描述】:

我需要更改 C:\Windows\System32\ 中的配置文件,但 wix 安装程序会将其复制到 C:\Windows\SysWOW64。

【问题讨论】:

  • 有什么问题? System32 用于 64 位二进制文​​件,SysWoW64 用于 32 位,这是指导方针。什么不起作用,您期望什么?

标签: c# wix windows-installer


【解决方案1】:

只是一个简短的说明:

  1. Package element 中将平台设置为x64
  2. 对于托管组件,将 Win64 attribute 设置为 yes,然后安装到 System64Folder

1.包装元素

<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" Platform="x64" />

2. WiX WXS 片段

<Directory Id="System64Folder">
  <Component Feature="ProductFeature" Win64="yes">
    <File Source="TestFile.txt" />
  </Component>
</Directory>

还有一些事情:

  • 安装到系统文件夹的文件通常应该设置为永久(如果不这样做,验证错误或警告)
  • 如果可以的话,您不应该安装到系统文件夹。这是什么文件?

【讨论】:

  • 有没有办法在使用 Heat 时自动生成 Win64="yes"?
  • 看起来不像,不是:See here - 尝试建议的搜索和替换方法? Candle.exe 还支持 -arch 开关,通过在命令提示符下不带开关运行 Candle.exe 来检查其文档 - 不确定它的工作情况如何,但它允许您设置默认架构。
  • WiX 的新版本中还有一些我没有研究过的新开发,还有 WiX 的商业分支 FireGiant 的 HeatWave Harvesting feature 我也没有尝试过。正如你所知道的,我已经很长时间没有看过这个了,但是here is an older answer of mine on heat.exe issues(朝向底部)。还有another old answer on "Paraffin" etc...
  • 请参阅 Rob Mensching 的博客了解 WiX 4(预览版)的发展:WiX Toolset v4-preview.0 - 其中candle.exelight.exe 似乎已合并。我不确定还发生了什么,或者heat.exe 是否受到影响。
  • 试过-arch,似乎没有什么不同。不能用石蜡,这是公司服务器。 :/ 搜索和替换似乎如此......呃。那么使用 Wix 有什么意义呢?如果我要编写自定义脚本,我还不如直接推出自己的安装程序,省去所有这些 GUID 废话。
猜你喜欢
  • 2017-01-23
  • 2012-12-31
  • 2010-10-31
  • 2013-05-03
  • 1970-01-01
  • 2011-11-20
  • 2011-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多