【问题标题】:WIX Operating System Condition Always trueWIX 操作系统条件始终为真
【发布时间】: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?得到了条件信息

Image of Deployment Project and Condition

【问题讨论】:

  • 很少会根据操作系统的版本而不是操作系统的位数来选择位置。由于 SysWow64 仅存在于 64 位操作系统上。
  • 嗯,你在vs2010安装项目下也试试同样的安装方法吗? (而不是蜡)
  • 什么意思?我正在使用设置项目。我的印象是条件字段与 WIX 条件相同。
  • 该 WiX 答案中的 <![CDATA[]]> 位是这种情况(与 Wix 中的所有其他内容一样)存储在 XML 文件中的事实。正在测试的实际条件只是Installed OR VersionNT >= 601
  • 请将您的答案作为答案发布。您可以从“已编辑...”链接访问回滚功能,以将问题帖子恢复为问题。

标签: c# visual-studio-2010 wix conditional-statements deployment-project


【解决方案1】:

抱歉耽搁了,我不得不等待 8 小时才能回答我自己的问题。

根本问题是一个愚蠢的错误。

每次对部署项目进行更改后,我都会重新构建解决方案。我应该右键单击部署项目并选择构建它。感谢您的帮助。

正如 [Damien_The_Unbeliever][1] 所说,我在条件字段中删除了 WIX <!CDATA[ ] 部分,并将条件添加到 DLL 而不仅仅是文件夹。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多