【发布时间】:2014-06-06 13:53:12
【问题描述】:
我有一个 DLL,我需要根据要安装的操作系统将其安装在特定文件夹中。
XP安装在system32,Win7安装在SysWow64。
解决方案是 C#,我正在使用部署项目。
在部署项目中,我使用文件系统编辑器添加了 system32 和 SysWow64 以及其中的 DLL。
在文件夹级别,我使用条件字段来创建文件夹/dll。
对于 System32,我有条件 [CDATA[VersionNT = 501]]
对于 SysWow64,我有条件 [CDATA[VersionNT = 601]]
我发现 DLL 只会在 XP 系统上插入,但 SysWow64 文件夹和 DLL 会在两个操作系统上创建。
我尝试了不同的变体,但似乎找不到哪里出错了。
我从这个线程How to check the system is Windows 7 or Windows Server 2008 R2 in Wix Installer?得到了条件信息
【问题讨论】:
-
很少会根据操作系统的版本而不是操作系统的位数来选择位置。由于 SysWow64 仅存在于 64 位操作系统上。
-
嗯,你在vs2010安装项目下也试试同样的安装方法吗? (而不是蜡)
-
什么意思?我正在使用设置项目。我的印象是条件字段与 WIX 条件相同。
-
该 WiX 答案中的
<![CDATA[和]]>位是这种情况(与 Wix 中的所有其他内容一样)存储在 XML 文件中的事实。正在测试的实际条件只是Installed OR VersionNT >= 601 -
请将您的答案作为答案发布。您可以从“已编辑...”链接访问回滚功能,以将问题帖子恢复为问题。
标签: c# visual-studio-2010 wix conditional-statements deployment-project