2014-06-06 72 views
0

我有一个DLL,我需要根据安装的操作系统安装在特定文件夹中。WIX操作系统条件总是为

对于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

+1

根据操作系统的操作系统*版本*而不是操作系统的位元来选择位置是很少见的。由于SysWow64只存在于64位操作系统上。 –

+0

嗯,你是否也尝试过vs2010安装项目下的相同安装方法? (而不是wix) – huncyrus

+0

你是什么意思? 我正在使用安装项目。 我的印象是条件字段与WIX条件相同。 – wmayes

回答

0

对不起延迟的状况信息,我只好耐心等待8小时,然后我可以回答我的问题。

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

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

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